Ответ 1
Вы предотвратите атаки XSS?
Если вы выполните это ускорение в нужное время (*), то да, вы предотвратите HTML-инъекцию. Это наиболее распространенная форма атаки XSS. Это не просто вопрос безопасности, вам все равно нужно делать экраны, чтобы строки с этими символами отображались правильно. Проблема безопасности - это подмножество проблемы корректности.
Я думаю, что вам нужен белый список на уровне персонажа, чтобы предотвратить определенные атаки
Нет. HTML-экранирование будет отображать каждую из этих атак как неактивный простой текст на странице, что вам и нужно. Ряд атак на этой странице демонстрирует различные способы выполнения HTML-инъекций, которые могут обойти глупые "фильтры XSS", которые развертывают некоторые серверы, чтобы предотвратить распространенные атаки HTML-инъекций. Это демонстрирует, что "фильтры XSS" по своей сути являются негерметичными и неэффективными.
Существуют и другие формы атаки XSS, которые могут или не могут повлиять на вас, например, плохие схемы для пользовательских URI (javascript:
и др.), вставка кода в данные, эхом в блок JavaScript (где вам нужен JSON -style escaping) или в таблицы стилей или заголовки HTTP-ответов (опять же, когда вы отправляете текст в другой контекст, вам всегда нужна соответствующая форма кодирования, вы всегда должны быть подозрительными, если видите что-либо с неэкранированной интерполяцией, например PHP "string $var string"
).
Затем выполняются загрузка файлов, политика начала Flash, повторяющиеся последовательности UTF-8 в устаревших браузерах и проблемы создания контента на уровне приложений; все это может привести к межсайтовому сценарию. Но HTML-инъекция является основной, с которой сталкивается каждое веб-приложение, и сегодня большинство программ PHP становятся неправы.
(*): при вставке текстового содержимого в HTML и ни в какое другое время. Не отправляйте данные отправки формы HTML в $_POST
/$_GET
в начале вашего script; ошибочная ошибка.)