Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.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
反XSS转义函数的Javascript实现_Javascript_Security_Xss_Owasp - Fatal编程技术网

反XSS转义函数的Javascript实现

反XSS转义函数的Javascript实现,javascript,security,xss,owasp,Javascript,Security,Xss,Owasp,列出了通过适当转义数据来防止XSS攻击的规则,并包含指向这些转义方法在Java语言中的参考实现的链接(HTML转义、属性转义、Java转义、CSS转义、URL转义) 在Javascript中是否有这些功能的实现,或者我必须“自己动手”吗 更新:我指的是浏览器中运行的Javascript。例如,用于转义使用jQuery html()方法呈现的文本(当然,text()更安全),或转义使用模板引擎(如EJS)呈现的数据 UPDATE2:似乎是我想要的,尽管它仍然只是“Alpha-Quality”因为您

列出了通过适当转义数据来防止XSS攻击的规则,并包含指向这些转义方法在Java语言中的参考实现的链接(HTML转义、属性转义、Java转义、CSS转义、URL转义)

在Javascript中是否有这些功能的实现,或者我必须“自己动手”吗

更新:我指的是浏览器中运行的Javascript。例如,用于转义使用jQuery html()方法呈现的文本(当然,text()更安全),或转义使用模板引擎(如EJS)呈现的数据


UPDATE2:似乎是我想要的,尽管它仍然只是“Alpha-Quality”

因为您倾向于在(客户端)JavaScript中使用DOM,所以不需要HTML和HTML属性转义。例如,给定不受信任的输入
输入

var el = document.createElement('div');
el.setAttribute('title', input);
el.appendChild(document.createTextNode(input));
是完全安全的,因为您从一开始就没有构造(序列化)HTML

如果您是从JavaScript代码编写自定义JavaScript或CSS,那么您是在做错误的事情(包括使用
document.write
或某些数据URI脚本src-aboutation),因此没有为这两种代码提供转义。您只需事先编写代码或样式,然后调用适当的函数或设置适当的类


并可用于对URI或其组件进行编码。

您可以使用库。对我来说,它与我一直用于将脚本注入HTML的测试用例兼容。

JavaScript…在哪里运行?您可以使用的库将取决于您的环境(浏览器与nodejs非常不同,nodejs与经典ASP非常不同,后者与etc非常不同),很抱歉不能说得更清楚。我指的是浏览器中运行的Javascript。例如,用于转义使用jQuery html()方法呈现的文本(当然,text()更安全),或转义使用模板引擎(如EJS)呈现的数据。