У меня есть текстовое поле, где пользователь может написать статью. Статья может содержать текст (жирный и курсив), ссылки и видеоролики YouTube. Как разрешить эти определенные теги html и по-прежнему отправлять безопасный код, предотвращающий xss?Как разрешить определенные теги html?
ответ
Я хотел бы использовать HTMLPurifier, чтобы убедиться, что вы только сохранить HTML
- Это справедливо
- и содержит только теги и атрибуты вы выбрали, чтобы позволить
Я должен добавьте, что PHP предоставляет функцию strip_tags()
, но это не так хорошо (котировочный):
Поскольку
strip_tags()
на самом деле не проверяет HTML, частично или сломанные теги могут привести к удалению большего количества текста/данных, чем ожидалось.
Эта функция не изменяет атрибуты тегов, которые вы позволяют использоватьallowable_tags
, включая стиль и OnMouseOver атрибуты, которые вредный пользователь может злоупотреблять при размещении текста, будет показываться другим пользователям.
Если вы ищете настоящую защиту XSS, я предлагаю использовать HTMLPurifier. Сделать это самостоятельно довольно сложно, если не невозможно. И должен иметь ошибки (/ дыры) в нем.
- 1. Настроить [AllowHtml], чтобы разрешить определенные теги html
- 2. Разрешить определенные теги в htmlpurifier
- 3. Как разрешить определенные HTML-теги с htmlentites() в php
- 4. Как получить определенные HTML-теги
- 5. Удалить определенные теги из html
- 6. Как извлечь определенные HTML теги в Android
- 7. Javascript разрешает только определенные HTML-теги
- 8. Как разрешить HTML-теги с плагином TinyMCE?
- 9. Как разрешить теги в очистителе HTML?
- 10. Как удалить определенные теги
- 11. Удалить определенные теги из html, избегая iframes
- 12. Сохранять определенные html-теги во время XSLT
- 13. предотвратить xss, но разрешить все html-теги
- 14. Разрешить пустые теги html в ckeditor
- 15. Как разрешить определенные теги HTML в поле формы в Symfony 1.2
- 16. Wordpress - Разрешить HTML-теги в редакторе в.ч.
- 17. window.getSelection() игнорировать определенные теги
- 18. CSS: Как адресовать определенные теги
- 19. Как удалить определенные теги и определенные атрибуты из строки?
- 20. Как экспортировать определенные теги A из файла. [Html] в PHP
- 21. Как удалить определенные теги html из String с replaceAll?
- 22. Как удалить определенные теги html и оставить контент?
- 23. Как я могу экспортировать ячейки Excel в определенные теги HTML?
- 24. Как удалить определенные теги html из строки в строке?
- 25. PHP REGEX Исключить определенные теги?
- 26. PHP: Отфильтровать определенные теги html из заданного текста
- 27. Как удалить определенные теги, но оставить допустимые теги
- 28. Как разрешить HTML-теги в текстовом блоке WPF со связыванием?
- 29. Как разрешить некоторые теги html и запретить другим?
- 30. Как настроить Tinymce, чтобы разрешить вставлять теги при редактировании html?
+1 для цитирования strip_tags() notes –
Thx! Похоже, htmlpurifier - путь. Просто для уточнения; htmlpurifier предотвращает инъекции xss, sql и все другие опасные коды? – Michael
Я использовал его несколько раз, чтобы очистить ввод пользователя и убедиться, что он содержит только те теги, которые я выбрал для разрешения; если вы тщательно выберете допустимые теги/атрибуты, это предотвратит XSS. Но он ничего не сделает с SQL Injections: это еще одна проблема, которую вы решите, убедившись, что вы поставили в SQL-запросы, безопасно * (целые числа должны быть целыми числами, строки должны быть надлежащим образом экранированы, ... или вы должны используйте подготовленные операторы) * –