Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.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
Javascript 针对外部资源的HTML净化器_Javascript_Php_Html_Xss_Htmlpurifier - Fatal编程技术网

Javascript 针对外部资源的HTML净化器

Javascript 针对外部资源的HTML净化器,javascript,php,html,xss,htmlpurifier,Javascript,Php,Html,Xss,Htmlpurifier,我对XSS和HTML净化器(研究了几天)还很陌生。然而,多年来我一直是一名编程和网络开发人员。(是的,我知道我没有遇到XSS的遗憾。我想到了类似的东西。但只是没有深入研究。) 另外,攻击者可以在IMG的SRC等位置以及其他有效标记的属性中加载其邪恶的外部JS。所以我有了一个想法,如果我禁止用户的html在我的域外加载资源(并净化我的文档/数据库中已有的资源),我能说我的站点没有XSS攻击吗 让我重新措辞并组织我的查询 首先,我要建立一个网站,允许用户输入(直接或通过上传)html代码。很典型 我

我对XSS和HTML净化器(研究了几天)还很陌生。然而,多年来我一直是一名编程和网络开发人员。(是的,我知道我没有遇到XSS的遗憾。我想到了类似的东西。但只是没有深入研究。)

另外,攻击者可以在IMG的SRC等位置以及其他有效标记的属性中加载其邪恶的外部JS。所以我有了一个想法,如果我禁止用户的html在我的域外加载资源(并净化我的文档/数据库中已有的资源),我能说我的站点没有XSS攻击吗

让我重新措辞并组织我的查询

首先,我要建立一个网站,允许用户输入(直接或通过上传)html代码。很典型

我将使用HTML净化器'清除'的用户代码

第一个问题:(Q1)即使在使用HTML净化器之后,攻击者仍然可以通过有效的HTML属性加载其恶意脚本。这是真的吗

(Q2)我想我不能在HTML净化器设置中允许标记,因为任何邪恶的事情都可能发生在标记内的JS中。这是真的吗

(第三季度)HTML净化器能去除文本中任何地方与我信任的域无关的所有链接吗

最后,一个理论问题(第四季度)如果文本经过HTML净化,没有外部链接,我们能说它绝对没有XSS吗

还有一件事,我想允许某些(非常有限的)JS。您认为在最后一个过程中将[ajax:getUserName]这样的(我的自定义)标记转换成真正的JS可以吗


非常感谢

让我们暂时假设HTML净化器没有安全漏洞(一般来说,假设软件没有bug是错误的,所以要小心。)

Q1:如果您使用文档中描述的HTML净化器(使用它来净化HTML,将HTML净化器的结果仅放在HTML上下文中,正确配置您的字符编码),那么攻击者应该无法加载其脚本。它是“安全”的开箱即用


问题2:HTML净化器将不允许您允许>脚本+1非常感谢您的回答。Re(Q1)我读到一些帖子说,如果一个属性链接到外部邪恶资源,HTML净化器就不能净化其中的内容。这对我来说很有意义,也让我担心。你能进一步解释一下HTML净化器是如何处理这种情况的吗?对于(Q3),
%URI.DisableExternal
是我要找的东西吗?非常感谢!!我提到的“帖子”是MGH在2013年10月6日凌晨4:17发布的帖子。我相信我读过一些关于类似事情的stackoverflow问题。这是一个不同的问题,这与HTML净化器允许HTML这一事实有关,HTML净化器允许浏览器发出额外的GET请求(例如图像)。您可以通过设置%URI.DisableResources(但这将禁用图像)来禁用此选项。是!这是我关心的问题-额外的GET请求,不仅在img的src中,而且可能发生在其他属性中<代码>%URI。可禁用资源的限制太大。你认为那会是一个很大的安全漏洞吗?你认为我们应该使用
%URI.DisableExternal
(并允许链接到我的域中的脚本,检查url是否在受信任的域中,然后重定向它,就像谷歌搜索结果都是
http://www.google.com.hk/url?...
)?以下是我读到的两个SOF线程(刚刚重新找到):和