🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## **AllowedSchemes** 定义允许URI拥有的方案的白名单。这样可以防止XSS攻击使用诸如javascript或mocha之类的伪方案。还支持`data`和`file`URI方案,但默认情况下未启用它们。 ## **Base** 基本URI是此纯HTML将插入其中的文档的URI。如果HTML Purifier需要根据相对URI计算绝对URI(例如,当[%URI.MakeAbsolute](http://htmlpurifier.org/live/configdoc/plain.html#URI.MakeAbsolute)打开时),则此信息很重要。您可以为此值使用非绝对URI,但行为可能会有所不同([%URI.MakeAbsolute](http://htmlpurifier.org/live/configdoc/plain.html#URI.MakeAbsolute)可以很好地处理绝对路径和相对路径,但不能保证向前兼容。)**警告:**如果设置,则此URI上的方案将覆盖[%URI.DefaultScheme](http://htmlpurifier.org/live/configdoc/plain.html#URI.DefaultScheme)指定的[方案](http://htmlpurifier.org/live/configdoc/plain.html#URI.DefaultScheme)。 ## **DefaultScheme** 定义将通过哪种方案提供服务,以便在不存在任何方案信息时选择适当的对象验证器。 从HTML Purifier 4.9.0开始,默认方案可以为null,在这种情况下,我们将拒绝所有没有显式方案的URI。 ## **DefinitionID** 自定义URI定义的唯一标识符。如果要添加自定义URIFilter,则必须指定此值。 ## **DefinitionRev** 您的自定义定义的修订标识符。有关详细信息,请参见[%HTML.DefinitionRev](http://htmlpurifier.org/live/configdoc/plain.html#HTML.DefinitionRev)。 ## **Disable** 禁用所有形式的所有URI。不知道为什么要这么做(毕竟,互联网是建立在超链接概念上的)。 ## **DisableExternal** 禁用到外部网站的链接。这是一种非常有效的反垃圾邮件和反网页欺诈手段,但代价不菲:不允许您域外的任何链接或图像。未链接的URI仍将保留。如果您希望能够链接到子域或使用绝对URI,[请](http://htmlpurifier.org/live/configdoc/plain.html#URI.Host)为您的网站指定[%URI.Host](http://htmlpurifier.org/live/configdoc/plain.html#URI.Host)。 ## **DisableExternalResources** 禁止嵌入外部资源,从而防止用户嵌入其他主机的图像之类的东西。这样可以防止访问跟踪(对电子邮件查看者有用),带宽泄漏,跨站点请求伪造,goatse.cx发布和其他不良行为,但也导致最终用户功能丧失(它们不能直接发布图片,从Flickr发布)。如果您没有强大的用户内容审核小组,请使用它。 ## **DisableResources** 禁用嵌入资源,本质上意味着没有图片。您仍然可以链接到它们。有关为什么这可能是一个好主意,请参见[%URI.DisableExternalResources](http://htmlpurifier.org/live/configdoc/plain.html#URI.DisableExternalResources)。 *注意:*尽管此指令自1.3.0开始提供,但实际上直到4.2.0才开始执行任何操作。 ## **Host** 定义服务器的域名,以便我们可以确定绝对URI是否来自您的网站。并非绝对必要,因为用户应使用相对URI来引用您网站上的资源。但是,它将允许您使用绝对URI链接到您在此处发布的域的子域:即example.com将允许sub.example.com。但是,更高级别的域仍将被排除:如果将[%URI.Host](http://htmlpurifier.org/live/configdoc/plain.html#URI.Host)设置为sub.example.com,则example.com将被阻止。**注意:**该指令将覆盖[%URI.Base,](http://htmlpurifier.org/live/configdoc/plain.html#URI.Base)因为给定页面可能位于子域中,但是您希望HTML Purifier更加宽松,并允许某些父域。 ## **HostBlacklist** URI主机中禁止的字符串列表。使用它杀死垃圾邮件等域名。请注意,它将捕获该域中的所有内容,因此moo.com将捕获moo.com.example.com。 ## **MakeAbsolute** 将所有URI转换为绝对形式。当要过滤的HTML假定使用特定的基本路径,但实际上将在不同的上下文中查看(并且无法设置备用基本URI)时,这很有用。必须设置[%URI.Base](http://htmlpurifier.org/live/configdoc/plain.html#URI.Base),此指令才能起作用。 ## **Munge** 将所有可浏览的(通常是http,https和ftp)绝对URI合并为另一个URI,通常是URI重定向服务。该指令接受URI,其格式`%s`应为插入url编码的原始URI的位置(示例:)`http://www.google.com/url?q=%s`。 用于此指令: * 防止PageRank泄漏,同时对用户相当透明(您可能还想添加一些客户端JavaScript来覆盖状态栏中的文本)。**注意**:许多安全专家认为,这种保护形式不会阻止垃圾邮件机器人。 * 将用户重定向到启动页面,告诉他们他们正在离开您的网站。尽管这是一种较差的可用性实践,但通常是在公司环境中强制执行的。 在HTML Purifier 3.1.1之前,此指令还启用了可浏览的外部资源的整理,如果您的重定向脚本是启动页面或使用的`meta`标记,这可能会破坏事情。要恢复以前的行为,请使用[%URI.MungeResources](http://htmlpurifier.org/live/configdoc/plain.html#URI.MungeResources)。 您可能还希望将[%URI.MungeSecretKey](http://htmlpurifier.org/live/configdoc/plain.html#URI.MungeSecretKey)与此指令一起使用,以强制执行重定向程序脚本允许的URI。开放的重定向程序脚本可能会带来安全风险,并且会对您的域名信誉造成负面影响。 从HTML Purifier 3.1.1开始,还有以下替换: | 键 | 描述 | 例`<a href="">` | | --- | --- | --- | | %r | 1-URI嵌入资源 (空白)-URI仅仅是一个链接 | | | %n | 此URI来自的标签名称 | 一种 | | %m | 此URI来自的属性的名称 | href | | %p | 此URI来源的CSS属性的名称;如果不相关,则为空白 | | 诚然,这些字母有些随意。唯一的规定是他们不能成为直通f。r是用于资源(我本来希望使用e,但是您会得到尽可能多的东西),n是用于名称,选择m是因为它是在n之后(并且我不能使用a),p是用于属性。 ## **MungeResources** 如果为true,则任何URI munging指令(例如[%URI.Munge)](http://htmlpurifier.org/live/configdoc/plain.html#URI.Munge)也将适用于嵌入式资源,例如`<img src="">`。如果您的重定向程序脚本不使用`Location`HTTP标头,请小心启用此指令。您所有的图像和其他嵌入式资源都将损坏。 **警告:**强烈建议您与[%URI.MungeSecretKey](http://htmlpurifier.org/live/configdoc/plain.html#URI.MungeSecretKey)结合使用,以减轻打开重定向器的安全风险。 ## **MungeSecretKey** 该指令可与[%URI.Munge](http://htmlpurifier.org/live/configdoc/plain.html#URI.Munge)一起生成安全的校验和。应该将其设置为不与其他任何人共享的安全密钥。可以使用%t将校验和放在URI中。使用此校验和可通过允许重定向器检查URI是否已通过以下行通过HTML Purifier来提供额外的保护级别: ~~~ $ checksum === hash_hmac(“ sha256”,$ url,$ secret_key) ~~~ 如果输出为TRUE,则重定向器脚本应接受URI。 请注意,攻击者仍然有可能通过滥用您网站的预览功能等来获取大量安全哈希,但是此服务提供了额外的保护级别,应与网站黑名单结合使用。 请记住,如果未打开[%URI.Munge,这](http://htmlpurifier.org/live/configdoc/plain.html#URI.Munge)将无效。 ## **OverrideAllowedSchemes** 如果将其设置为true(默认情况下为true),则可以通过简单地将HTMLPurifier\_URIScheme注册到注册表来覆盖[%URI.AllowedSchemes](http://htmlpurifier.org/live/configdoc/plain.html#URI.AllowedSchemes)。如果为false,则还必须更新该指令以添加更多方案。 ## **SafeIframeRegexp** 将与iframe URI匹配的PCRE正则表达式。这是一种相对不灵活的方案,但对于iframe最常见的用例:嵌入式视频,效果很好。仅当启用[%HTML.SafeIframe时,](http://htmlpurifier.org/live/configdoc/plain.html#HTML.SafeIframe)此指令才有效。以下是一些示例值: * `%^http://www.youtube.com/embed/%`-允许YouTube视频 * `%^http://player.vimeo.com/video/%`-允许Vimeo视频 * `%^http://(www.youtube.com/embed/|player.vimeo.com/video/)%`-同时允许 请注意,此指令不能为您提供足够的粒度来禁用所有`autoplay`视频。如果需要此功能,请在HTML Purifier论坛上进行传递。