Я создаю довольно небольшое веб-приложение на PHP, где (доверенный) администратор может, среди прочего, хранить сотни объектов в базе данных. Пользователь может ввести несколько деталей об этих объектах в виде текстовых полей (элемент ввода с атрибутом типа, установленным на «текст»).Должен ли весь вывод очищаться в PHP?
Объекты с их деталями отражаются в виде таблицы, экранированной функцией htmlspecialchars
. Однако эта функция не предотвращает вредоносное использование тегов html, например, тег <script>
.
Вопрос заключается в том, следует ли очищать все введенные пользователем данные (каждая ячейка в таблице) с помощью чего-то вроде HTMLPurifier, который уже используется в другом месте приложения. И если да, то каким лучшим способом это можно было бы использовать с использованием HTMLPurifier тысячи раз, так как есть много деталей, может вызвать некоторые серьезные проблемы с производительностью.
В настоящее время, вероятно, проще просто использовать «Полицию безопасности контента», чтобы предотвратить выполнение встроенного сценария в целом. Это должно быть сделано в любом случае. – arkascha
Почему бы не «htmlspecialchars» быть достаточным для вывода полей текстового содержимого в этой таблице? Или это связано с тем, что контент, добавленный администратором, обрабатывается иначе, чем указанные текстовые поля, предоставленные пользователем? – mario