Как избежать создания пользователями новых 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()

Мне кажется, что люди могут просто пошалить с кодом и сделать группы на сервере непреднамеренными?

Вернуться на верх