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的使用。
另一个好的资源是