По соображениям безопасности? По сути, вы не можете. Вот кое-что, чему я научился в прошлом:
<a href="javascript:something">...</a>
<p onmouseover="something">
- Существует несколько схем URL, которые эквивалентны
javascript:
в разных браузерах, например jscript:
, mocha:
и livescript:
. Большинство из них без документов.
- Старые версии Netscape обрабатывали определенные байты (я думаю, 0x94 и 0x95?) Как
<>
. Надеюсь, в современных браузерах нет ничего подобного.
- VBScript.
MySpace попытался сделать это, и в результате был получен червь «Сами - мой герой», который остановил службу на день или около того, среди множества других бедствий безопасности с их стороны.
Поэтому, если вы хотите принять ограниченное подмножество HTML, которое включает в себя только текст и форматирование, вы должны белый список , а не черный список . Вы должны добавить в белый список теги, атрибуты и, если вы хотите разрешить ссылки, схемы URL. Для этого существует несколько библиотек, но я не знаю, какие из них рекомендовать в PHP.