Я пытаюсь создать простой чат с помощью PHP. Все работает так, как ожидалось, однако натолкнулось на потенциальный «эксплойт». Я использую AJAX для извлечения всех данных чата в прокрутке (так же, как Facebook, Twitter и т. Д.). Теперь возникает проблема: я в настоящее время храню идентификатор чата внутри самого динамически созданного div. Например»PHP Chat - Сохранение id в html5?
<div class="chat" chat_id="4">
....
</div>
Можно было бы быть в состоянии изменить chat_id через браузер, который будет вызывать любой введенный текст, который будет храниться в некорректной идентификатор в базе данных. Что бы быть лучшим способом, чтобы предотвратить это?
я в настоящее время думал о способе, в котором все извлекаемые/инициированные детали чата (отправитель, чат идентификатора) хранятся в $ _SESSION переменного в . Это в основном для целей проверки, чтобы убедиться, что чат идентификатор действителен для текущего пользователя.
Есть ли лучший способ сделать это? Спасибо.
Почему у вас есть 'chat_id' Аттрибут? – user3284463
Они также могут просто изменить свой вызов ajax. Почему вы запретили пользователям делать это? Если они хотят писать в другом чате (к которому у них есть доступ), почему бы не позволить им? Почему бы вам просто не установить это в js? Тем не менее, это все равно небезопасно - клиентские вызовы/данные отсутствуют. Клиент может по определению изменять все, что они отправляют/делают/получают. – h2ooooooo
Если вы храните идентификатор чата в сеансе, вы можете проверить пользователя при получении сообщений. Если у пользователя нет этого идентификатора чата в сеансе, ничего не визуализируйте. В качестве примечания, я предлагаю изменить атрибут 'chat_id =" "' с атрибутом data-chat-id = "" '. хорошая практика с '-' и' data- * ' –