Предотвращение публикации данных HTML в текстовых полях формы - PullRequest
1 голос
/ 11 февраля 2011

Я делаю веб-приложение с использованием PHP, в котором у меня есть форма, которая делает записи в базе данных MySQL, а затем отображает ее на другой веб-странице. Но проблема в том, что текстовые поля в форме, как правило, принимают контент HTML, что делает приложение уязвимым для взломов XSS. Как преобразовать HTML в простой текст, прежде чем отобразить его на веб-странице.

Пожалуйста, не стесняйтесь задавать вопросы, если мне не хватает какой-либо информации.
---------------------------------------(ОБНОВИТЬ)-------- --------------------------------
Многие из вас, товарищи по команде, предложили использовать htmlspecialchars, но в этом случае, если бы я позволил пользователю ссылаться на другие страницы, используя гиперссылки, как мне это сделать?

Ответы [ 3 ]

2 голосов
/ 11 февраля 2011

htmlspecialchars является одним из ваших друзей за это, вы также можете заменить utf8, шестнадцатеричную или разрешенную версию <, чтобы избежать запутывания скрипта.

1 голос
/ 11 февраля 2011

htmlspecialchars - это один из способов предотвращения xss

strip_tags также удаляет теги PHP

также убедитесь, что вы используете mysqli_real_escape_string или подобное для предотвращения SQL-инъекций

UPDATE В ответ на ваше обновление самый простой способ сделать это - использовать один из множества синтаксисов markdown ala Daring Fireball . Поскольку синтаксис уценки не является тегами HTML / PHP, он должен без проблем проходить через функции PHP, но я никогда сам этого не реализовывал, поэтому YMMV.

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