php含有html标签的内容需要过滤吗?

像发表文章的时候,通过编辑器获取的内容一般都有p、img等html标签,这样的内容不好用straip_tags来过滤。一般编辑器都会自动转义html标签,但攻击者可能会绕过编辑器,不知道这样的内容是否需要过滤,如果需要的话该怎样过滤呢?

阅读 3.9k
1 个回答

防御XSS攻击,最简单粗暴的做法就是用htmlspecialchars把特殊字符(&,",',<,>)替换为HTML实体(&amp;&quot;&#039;&lt;&gt;)后输出.防御XSS攻击,最复杂的做法就是自己写正则过滤,不过还好有HTMLPurifier库,除了能过滤XSS代码,还能把不完整的标签补全或者去掉.

<?php
# http://htmlpurifier.org/download
require dirname(__FILE__).'/htmlpurifier/library/HTMLPurifier.auto.php';
$purifier = new HTMLPurifier();
echo $purifier->purify($html);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题