Вопрос по html, php, xss, tags – предотвратить xss, но разрешить все теги html

0

Я строю блог, и в настоящее время я заканчиваю админку.

Так как я буду главным, кто будет управлять этим ... я хочу убедиться, что когда я наберу

<ul>
   <li>test</li>
   <li>test</li>
</ul>

покажет мне неупорядоченный список, но и предотвратитXSS теги на всякий случай ...

как я мог это сделать?

может ли решение создавать функции и заменять тегиul, ol, img и т.д...?

@BalusC пропустил это, обновил вопрос ... я использую php. fxuser
Вы могли бы использоватьОчиститель HTML. ComFreek
Конкретный ответ зависит от используемого языка веб-программирования. Если бы это было, например, Java, вы могли бы использоватьJsoup за это. Пожалуйста, измените свой вопрос, чтобы упомянуть и пометить его соответствующим образом. BalusC

Ваш Ответ

3   ответа
1
@colin Я указал пользователю на метод в качестве примера, OP может увидеть, как его можно использовать для удаления тегов XSS и расширения / повторного использования. rs.
Кроме того, если вы хотите использовать уценку в качестве входных данных, проверьтеmichelf.com/projects/php-markdown Colin Pickard
Первый URL-адрес представляет собой HTML-дезинфицирующее средство, созданное для StackOverflow, но обратите внимание, что он допускает только небольшое подмножество тегов и не отвечает желанию ОП разрешить «все HTML-теги». Colin Pickard
1

ующем:

запустить HTML через (настоящий) HTML-парсерудалите любой элемент или атрибут, которого нет в белом списке (используйте сторонний белый список в качестве отправной точки, изучите любые дополнительные элементы / атрибуты, которые вы добавляете, чтобы убедиться, что у них нет средств для внедрения JS, которые вы не делаете знать о).проверка работоспособности любых URIгенерировать чистый HTML из DOM

Особенности будут зависеть от языка, который вы используете.

Пункт (2) очень трудно сделать правильно самостоятельно. Например, если вы разрешите элемент<a> с атрибутомhref, тогда<a href="javascript:alert('XSS')">` может стать сюрпризом для вас. И это прежде, чем вы доберетесь до<span style="{ text-size: "expression(alert('XSS'))"; }">, Разумной вещью в этой ситуации является использование проверенной библиотеки. Colin Pickard
+1 за(real) HTML parser вместо регулярных выражений! ComFreek
1

что вы ищете, это дезинфицирующее средство HTML. Их очень сложно написать правильно, поэтому вы должны взглянуть на существующую библиотеку. Для PHP, посмотрите наОчиститель HTML.

Надлежащая защита XSS включает в себя не только санитарную обработку html. Проект Open Web Application Security Project (OWASP) составил каноническое руководство по предотвращению атак XSS:

Шпаргалка по профилактике межсайтовых сценариев

Похожие вопросы