Безопасный вывод HTML с использованием PHP - PullRequest
0 голосов
/ 28 августа 2011

Я использовал stackoverflow, чтобы найти решение своих проблем, поэтому мне не нужно было публиковать вопрос так долго.Я ищу способ вывода HTML-кода, но, как многие из вас ответили, HTMLPurifier является лучшим решением.

Мне трудно поверить, что это единственный способ, как не предполагалось, что PHP думал о том, как очистить ввод от атак XSS, но все же выводить данные?

Htmlentities, htmlspecialchars, strip_tags - не лучшие кандидаты для этого.

Итак, вопрос в том, что такое:

Что я пытаюсь сделать - вывестиHTML-данные из MYSQL безопасно.

1 Ответ

0 голосов
/ 28 августа 2011

htmlentities прекрасно работает во многих случаях.Тем не менее, я считаю, что лучший способ предотвратить такие вещи, как XSS - это внесение в белый список допустимых символов.Например:

Имя человека может состоять из прописных и строчных букв, пробелов, дефисов и, возможно, апострофов.Таким образом, полные имена, введенные в вашу систему, должны соответствовать регулярному выражению /^[a-z'- ]+$/i.
Примеры: Генри Смит, Джон О'Нил, Хизер Фишер-Садовник.

Письмо может содержатьсимволы в верхнем и нижнем регистре AZ, цифры, плюсы, тире, точки и символ в.Таким образом, регулярное выражение для электронной почты будет: /[a-z0-9-.+]@[a-z0-9-.]+/i.
Примеры: jeff.Atwood@stackoverflow.com, spammer123@yahoo.com, leet+hacker@gmail.com, php-list @php.net

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

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