Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.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 防止xss,但允许所有html标记_Php_Html_Tags_Xss - Fatal编程技术网

Php 防止xss,但允许所有html标记

Php 防止xss,但允许所有html标记,php,html,tags,xss,Php,Html,Tags,Xss,我正在建立一个博客,目前我正在完成管理面板 因为我将主要是谁来管理它。。。我想确保当我打字的时候 <ul> <li>test</li> <li>test</li> </ul> 试验 试验 将向我显示无序列表,但也会阻止XSS标记,以防 我怎么能这么做 解决方案是否可以创建函数并替换ul、ol、img等的标签?检查此url- 关于这个问题以及如何处理这个问题,还有另一个有用的线索- 检查此url- 关于

我正在建立一个博客,目前我正在完成管理面板

因为我将主要是谁来管理它。。。我想确保当我打字的时候

<ul>
   <li>test</li>
   <li>test</li>
</ul>
  • 试验
  • 试验
将向我显示无序列表,但也会阻止
XSS
标记,以防

我怎么能这么做

解决方案是否可以创建函数并替换
ul
ol
img
等的标签?

检查此url-

关于这个问题以及如何处理这个问题,还有另一个有用的线索- 检查此url-

关于这个问题以及如何处理这个问题,还有另一个有用的线索-
在允许HTML的同时处理XSS的标准方法是:

  • 通过(真实的)HTML解析器运行HTML
  • 删除任何不在白名单上的元素或属性(使用第三方白名单作为起点,对添加的任何其他元素/属性进行研究,确保它们没有注入您不知道的JS的方法)
  • 是否检查任何URI
  • 从DOM生成干净的HTML

  • 具体细节将取决于您使用的语言。

    在允许HTML的同时处理XSS的标准方法是:

  • 通过(真实的)HTML解析器运行HTML
  • 删除任何不在白名单上的元素或属性(使用第三方白名单作为起点,对添加的任何其他元素/属性进行研究,确保它们没有注入您不知道的JS的方法)
  • 是否检查任何URI
  • 从DOM生成干净的HTML

  • 具体细节将取决于您使用的语言。

    您正在寻找的是HTML消毒剂。这些代码很难正确编写,因此您应该查看现有的库。对于PHP,请看一看

    正确的XSS保护不仅仅涉及html清理。开放式Web应用程序安全项目(OWASP)提供了一个避免XSS攻击的规范指南:


    您正在寻找的是HTML消毒剂。这些代码很难正确编写,因此您应该查看现有的库。对于PHP,请看一看

    正确的XSS保护不仅仅涉及html清理。开放式Web应用程序安全项目(OWASP)提供了一个避免XSS攻击的规范指南:


    具体答案取决于所使用的web编程语言。如果是Java示例,您可以使用它。请编辑您的问题以提及并相应标记。@BalusC错过了那个,更新了问题。。。具体答案取决于所使用的web编程语言。如果是Java示例,您可以使用它。请编辑您的问题以提及并相应标记。@BalusC错过了那个,更新了问题。。。我使用php。您可以使用。第一个URL是为StackOverflow构建的html净化程序,但请注意,它只允许标记的一小部分,不符合OP允许“所有html标记”的愿望。此外,如果您想使用标记作为输入,请查看@colin i将用户指向一个方法作为示例,OP可以看到如何使用它去除XSS标记并扩展/重复使用。第一个URL是为StackOverflow构建的html净化程序,但请注意,它只允许标记的一小部分,不满足OP允许“所有html标记”的愿望。此外,如果您想使用标记作为输入,请查看@colin i将用户指向一个方法作为示例,OP可以看到如何使用它剥离XSS标记并扩展/重用。项目(2)很难自己正确完成。例如,如果您允许元素
    带有属性
    href
    ,那么
    `可能会让您大吃一惊。这是在你接触到类似的
    之前。在这种情况下,明智的做法是使用经过验证的库。第(2)项很难由您自己正确完成。例如,如果您允许元素
    带有属性
    href
    ,那么
    `可能会让您大吃一惊。这是在你接触到类似的
    之前。在这种情况下,明智的做法是使用经过验证的库。