Как предотвратить внедрение html или javascript с помощью php на стороне сервера - PullRequest
0 голосов
/ 06 мая 2011

Надеюсь, что это не дубликат, я не смог найти оригинальный вопрос по теме.Если у вас есть область для ввода данных пользователями, как вы сохраняете и извлекаете данные, не добавляя в них javascript или html?

В качестве примера, скажем, пользователь делает сообщение на форуме.Они решают написать html-список или функцию javascript, которая запускается при просмотре сообщения.Как вы смягчаете это, когда получаете входные данные на стороне сервера?В частности, серверная часть PHP.

  • Удалить части своих строковых данных на основе шаблонов?
  • Использовать HTML-тег вокруг своей записи, как?

Спасибо

Ответы [ 4 ]

3 голосов
/ 06 мая 2011

Все, что вам нужно сделать, если идти к минимуму, это заменить < на &lt;.

2 голосов
/ 06 мая 2011

Существует множество учебных пособий по предотвращению внедрения кода.Microsoft довольно обширна здесь можно найти .

Для html-инъекций, в зависимости от того, насколько тщательным вы хотите быть, вы можете просто вставить анализатор строк, чтобы проверить <> и удалить их без каких-либо исключений.

2 голосов
/ 06 мая 2011

Я использую Очиститель HTML , чтобы убрать ненужные биты и оставить в битах, которые я делаю.Правила по умолчанию довольно хороши, но они предлагают огромную гибкость, если вам это нужно.

2 голосов
/ 06 мая 2011

Вы должны удалить или перевести оскорбительные части своего поста.Вы можете сделать это один раз при поступлении сообщения и сохранить переведенный пост в базе данных, или вы можете делать это каждый раз, когда вы выводите сообщение и сохраняете необработанный пост в базе данных.Оба подхода имеют свои плюсы и минусы.

Что касается того, как убрать плохие вещи, использование простого сопоставления для замены всех <и> на <и> проходит долгий путь - но есть еще много дел, кромечто.

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