Jquery (AJAX) заставляет меня включить XSS - PullRequest
0 голосов
/ 31 марта 2020

Heyo там

Я хочу создать систему комментариев пользователей. Все прошло хорошо, ожидайте эту дерьмовую jquery ajax систему. Вы не можете отправить строку, включающую несколько специальных символов с ajax. Результат ответа будет пустым все время. Поэтому я искал в Интернете, и решением номер один было закодировать строку.

Итак, я закодировал строку и сохранил ее в базе данных. Чтобы отобразить закодированную строку, вы должны ее декодировать. Теперь проблема XSS начинается. После декодирования строки он может выполнять любые методы javascript, и вы не можете избежать его, «расшифровав» его, потому что вывод будет выглядеть как «% 3C% 3C% 3C% 3C% 3C% 3 C« Ожидается от »< <<<<<<<<< >> ".

Так что я действительно заинтересован в том, как вы кодируете / декодируете пользовательский ввод до сих пор с jquery и ajax. Обычно я использую php и htmlspecialchars, поэтому для меня это не проблема. Но, как вы теперь знаете, Jquery не может обрабатывать строку, содержащую специальные символы.

1 Ответ

0 голосов
/ 31 марта 2020

Sup парни

Наконец-то я нашел решение. Обычно я пробовал это раньше, но это не сработало. Возможно, я был просто мертвым после нескольких часов кодирования. : D

  1. кодировать пользовательский ввод с помощью функции encodeURIComponent ()
  2. сохранить закодированную строку в базе данных. Не забудьте экранировать входные данные.
  3. для вывода необходимо декодировать строку (php: urldecode ())
  4. вам необходимо экранировать код html (php : htmlspecialchars ())
  5. необходимо преобразовать nl в br (php: nl2br ())
  6. введенный пользователем ввод будет отображаться правильно и без проблем с xss.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...