Предотвратить чаты от выполнения сценариев в браузере после отправки с сервера MySQL? - PullRequest
3 голосов
/ 30 апреля 2020

Я делаю приложение для чата, где люди могут отправлять сообщения туда и обратно. Я просто понял, что при отправке сообщения он будет выполнять скрипт в браузере. Если я отправлю сообщение <script>alert("hello");</script> Мой браузер выполнит скрипт, а в сообщении div не будет содержимого сообщения. Когда я смотрю на сервер, в столбце «содержание» есть скрипт. Когда я загружаю все сообщения между пользователем и мной, он запускает скрипт ... снова. Проблема, с которой я сталкиваюсь, заключается в том, как отобразить сообщения в виде текста без запуска скрипта? Я формирую большие блоки HTML внутри сервера php, затем echo каждый из них к запросам AJAX, которые добавляют их в div диалога. Как упрощенная версия того, что я делаю, это в основном текстовый блок I echo после получения значений из базы данных.

$chat_message='
<div class="messaging-block">
    <div id="date">'.$date.'</div>
    <div id="username">'.$fname.' '.$lname.'</div>
    <div id="content">'.$content.'</div>
</div>';
echo $chat_message;

AJAX

$.ajax({
type: 'POST',
url: 'get-chat-messages.php',
dataType: 'html', //have tried 'text' as well
data: 'convid=' + conversation,
success: function(response) {
  $("#conversation-div").append(response);
                      }        });

1 Ответ

0 голосов
/ 30 апреля 2020

В других программах есть забавные теги-полоски c, попробуйте поискать их в Google или что-то в этом роде, я вполне уверен, что есть функции тегов-полосок или что-то подобное для того, что вы ищете.

Googling XSS предотвращение вероятно, также хорошая идея.

Я вижу, вы упомянули эхо. Php имеет теги полосы 100%

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...