2019-05-19 前端安全

XSS  跨站脚本攻击

浏览器错误的将攻击者提供的用户输入数据当作JavaScript脚本给执行了。

按是否在应用中存储分为: 存储型XSS和反射性XSS

按是否和服务器有交互:Server Side XSS 和 Dom based XSS

攻击者可以利用XSS漏洞来窃取包括用户身份信息在内的各种敏感信息、修改Web页面以欺骗用户,甚至控制受害者浏览器、或者和其他漏洞结合起来行成蠕虫攻击

防御:

最佳做法:对数据进行严格的输出编码,使得攻击者提供的数据不再被浏览器认为是脚本而被误执行

设置CSP HTTP Header、输入验证、开启浏览器XSS防御


CSRF攻击 跨站请求伪造

本质:重要操作的所有参数都是可以被攻击者猜测到的。攻击者预测出URL的所有参数与参数值,才能成功地构造一个伪造的请求。        

防御方法:  验证码、  Referer Check 检查请求是否来自合法的源(可被伪造)

 通用方法:Token   使用Anti-CSRF Token   在URL中保持原参数不变,新增一个参数Token。Token的值是随机的(必须使用足够安全的随机数生成算法,或者采用真随机数生成器),其为用户与服务器所共同持有,可以放在用户的Session中,或者浏览器的Cookie中。 注意保密,尽量把Token放在表单中(构造一个隐藏的input元素),以POST提交,避免Token泄露。

 注意:如果网站有XSS漏洞或者一些跨域漏洞,可能导致Token泄露。

                      在XSS攻击下,读取Token值,然后再构造出一个合法的请求,可以称为:XSRF。

 React 默认会转义所有字符串。

 AngularJS    使用AngularJS中的SCE来防御XSS攻击。

你可能感兴趣的:(2019-05-19 前端安全)