哪些字符使网址无效?
这些有效的网址是?
example.com/file[/].html
http://example.com/file[/].html
当我允许用户将数据作为参数插入JS innerHTML
函数时,如下所示:
element.innerHTML = “User provided variable”;
Run Code Online (Sandbox Code Playgroud)
我明白为了防止XSS,我必须进行HTML编码,然后对用户输入进行JS编码,因为用户可以插入如下内容:
<img src=a onerror='alert();'>
Run Code Online (Sandbox Code Playgroud)
只有HTML或只有JS编码才有帮助,因为.innerHTML
我理解的方法在将输入插入页面之前对输入进行解码.使用HTML + JS编码,我注意到.innerHTML
只解码JS,但HTML编码仍然存在.
但我能够通过双重编码实现相同的HTML.
我的问题是:有人可以提供一个示例,说明为什么我应该进行HTML编码然后进行JS编码,而不是在使用该.innerHTML
方法时在HTML中进行双重编码?
我是ColdFusion的新手,所以我不确定是否有一种简单的方法可以做到这一点.我被指派在这个CF站点修复站点范围内的XSS漏洞.不幸的是,有大量的页面正在接受用户输入,并且几乎不可能进入并修改它们.
有没有办法(在CF或JS中)轻松防止整个站点的XSS攻击?
javascript ×2
xss ×2
coldfusion ×1
encoding ×1
html ×1
innerhtml ×1
rfc3986 ×1
security ×1
url ×1
validation ×1