原标题:通过脚本片段绕过XSS防御
从恶作剧弹框到盲打后台乃至沦陷一个企业,XSS的危害可大可小,近年来,XSS攻击与防御的博弈持续不断,下面是今年5月份北爱尔兰首府举行的OWASP AppSec EU的安全议题:通过脚本片段绕过XSS防御。
一、XSS 防御措施
尽管业界付出了很多努力,XSS依然是一个广泛且未解决的问题。有数据指出:谷歌VRP中70%的漏洞是XSS漏洞。
XSS防御技术的通用假设为:XSS将会永远存在,我们应把重点放在XSS防御上。
防御措施主要是阻止以下类型的XSS攻击:
具体可分为:
1、WAF, XSS filters
阻断包含危险标签和属性的请求。
2、HTML净化
从HTML中移除危险的标签和属性。
3、内容安全策略CSP
区分合法的和非法注入的JS代码
二、使用JS框架
防御手段认为封锁危险的标签和属性可以阻止XSS攻击,那么当前流行的JS框架来构建一个应用程序时,这种手段是否还可行?
首先提及选择器,Java通过选择器与DOM进行交互:
<myTagid="someId" class="class1”data-foo="bar"> </myTag>
<>
tags =querySelectorAll("myTag"); // by tag name
tags = querySelectorAll("#someId");// by id
tags =querySelectorAll(".class1"); // by class name
tags =querySelectorAll("[data-foo]"); // by attribute name
tags =querySelectorAll("[data-foo^=bar]"); // by attribute value
</>
在JS框架中,选择器是所有Java框架和库的基本元素。例如:
jQuery因它的$函数而闻名:
$(' <jqueryselector>').append('some text to append');