Как избежать создания пользователями новых Websockets/Rooms с помощью Django Channels?
Я в основном следую этому руководству:
https://channels.readthedocs.io/en/stable/tutorial/part_3.html
В этом простом примере каждый может создавать и присоединяться к различным комнатам. Я хочу сделать веб-приложение, в котором уже есть определенные комнаты, поэтому я не хочу, чтобы пользователи ходили вокруг и создавали случайные веб-сокеты. Каков наилучший способ безопасного достижения этой цели? Можно ли просто сделать логику в ваших представлениях? То есть, возвращать рендер, только если он соответствует комнате (шаблон url), которая разрешена.
Достаточно ли этого, или люди могут обойти это? Может ли кто-нибудь, например, подделать код javascript и создать websockets в любом случае?
Если я посмотрю на код в front end:
# const chatSocket = new WebSocket(
'ws://'
+ window.location.host
+ '/ws/chat/'
+ roomName
+ '/'
);
And backend:
# def connect(self):
self.room_name = self.scope['url_route']['kwargs']['room_name']
self.room_group_name = 'chat_%s' % self.room_name
async_to_sync(self.channel_layer.group_add)(
self.room_group_name,
self.channel_name
)
self.accept()
Мне кажется, что люди могут просто пошалить с кодом и сделать группы на сервере непреднамеренными?