AI写作智能体 自主规划任务,支持联网查询和网页读取,多模态高效创作各类分析报告、商业计划、营销方案、教学内容等。 广告
# HTML Purifier文档 针对XSS跨站攻击,一般有两种方法避免 1. 对用户提交的数据进行过滤 2. 对显示数据进行特殊处理,一般用htmlspecialchars()实体化处理 而HTMLPurifier就是第一种方法,其实就类似于白名单机制,不在白名单的内容会被过滤掉 HTML Purifier是一个HTML过滤器,它将获取任意的HTML代码段,并对其进行严格的测试,验证和过滤,以确保可以安全地输出到网页上。它通过以下方式实现此目的: 1. 分析(解析为符号)文档, 2. 对符号执行各种策略: 1. 删除不在白名单中的所有元素, 2. 使符号格式正确, 3. 修复节点的嵌套 4. 验证节点的属性 3. 使用净化后的符号生成HTML。 [HTMLPurifier类文件属性方法说明](http://htmlpurifier.org/doxygen/html/index.html) 但是,大多数用户只需要与[HTMLPurifier](http://htmlpurifier.org/doxygen/html/classHTMLPurifier.html "协调HTML Purifier的子系统以净化HTML的外观。")和[HTMLPurifier\_Config](http://htmlpurifier.org/doxygen/html/classHTMLPurifier__Config.html "触发可自定义行为的配置对象。")交互即可。 ### %HTML.Allowed是什么意思? 是HTML Purifier的配置指令的简写形式。它采用%Namespace.Directive的形式。出于实际目的,%HTML.Allowed转换为以下PHP代码: ``` <pre class="calibre10">``` $config<span class="token1">-</span><span class="token1">></span><span class="token4">set</span><span class="token3">(</span><span class="token2">'HTML'</span><span class="token3">,</span> <span class="token2">'Allowed'</span><span class="token3">,</span> $value<span class="token3">)</span><span class="token3">;</span> ``` ``` ### 我不能在`a`标签中使用`target`和`name`属性! [%Attr.AllowedFrameTargets](http://htmlpurifier.org/live/configdoc/plain.html#Attr.AllowedFrameTargets)