Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我应该允许从用户生成的内容中使用HTML标记的白名单?_Php_Security - Fatal编程技术网

Php 我应该允许从用户生成的内容中使用HTML标记的白名单?

Php 我应该允许从用户生成的内容中使用HTML标记的白名单?,php,security,Php,Security,全部, 我正在用PHP建立一个小网站。在站点中,我接收用户生成的文本内容。我想允许一些安全的HTML标记(例如,格式化)以及MathML。如何为strip\u tags()函数编译白名单?我是否可以使用一个公认的白名单?标准的strip\u tags功能对于安全性来说是不够的,因为它根本不验证属性。显式使用更完整的库,以便彻底清理类似HTML的内容 标准的strip_标签功能不足以保证安全性,因为它根本不验证属性。显式使用更完整的库,以便彻底清理类似HTML的内容 如果您的目标是不允许javas

全部,


我正在用PHP建立一个小网站。在站点中,我接收用户生成的文本内容。我想允许一些安全的HTML标记(例如,格式化)以及MathML。如何为
strip\u tags()
函数编译白名单?我是否可以使用一个公认的白名单?

标准的
strip\u tags
功能对于安全性来说是不够的,因为它根本不验证属性。显式使用更完整的库,以便彻底清理类似HTML的内容

标准的
strip_标签
功能不足以保证安全性,因为它根本不验证属性。显式使用更完整的库,以便彻底清理类似HTML的内容

如果您的目标是不允许javascript通过,那么您的标签白名单将非常接近于空集。 请记住,几乎所有标记都可以包含javascript代码,以便在指定事件发生时执行


如果你不想去HTML净化器类的路由,考虑一种不同的语言,比如(这个站点使用的)或者其他wiki类似的标记语言;但是,一定要禁用可能允许的任何passthrough HTML的使用。

如果您的目标是不允许javascript通过,那么您的标记白名单将非常接近于空集。 请记住,几乎所有标记都可以包含javascript代码,以便在指定事件发生时执行

如果你不想去HTML净化器类的路由,考虑一种不同的语言,比如(这个站点使用的)或者其他wiki类似的标记语言;但是,请确保禁用可能允许的任何传递HTML的使用。

另一个好的资源是