目录
一、CSRF攻击
1.CSRF攻击方式
攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账......造成的问题包括:个人隐私泄露以及财产安全。
(1)CSRF通常发生在第三方域名
(2)CSRF通常不能获取用户cookie信息,但是可以直接使用cookie信息
2.完成CSRF攻击必须有两个步骤
(1)用户登录通过输入个人信息登录正确网站a
(2)用户在未登出个人信息的情况下访问危险网站b
3.CSRF攻击的预防
(1)(针对特点1)同源检测:禁止外域发起请求。每一个异步请求都会自动带上Origin Header和Referer Header标记来源域名。服务器端可以通过对这两个Header的解析确定是否来自外域
(2)(针对特点2)CSRF Token:由于CSRF的本质在于攻击者欺骗用户去访问自己设置的地址,所以如果要求在访问敏感数据请求时,要求用户浏览器提供不保存在Cookie中,并且攻击者无法伪造的数据作为校验,那么攻击者就无法再运行CSRF攻击。这种数据通常是Form表单中的一个数据项。服务器将其生成并附加在Form中,其内容是一个伪随机数。当客户端通过Form提交请求时,这个伪随机数也一并提交上去以供校验。正常的访问时,客户端浏览器能够正确得到并传回这个伪随机数,而通过CSRF传来的欺骗性攻击中,攻击者无从事先得知这个伪随机数的值,服务端就会因为校验token的值为空或者错误,拒绝这个可疑请求。
二、XSS攻击
1.XSS攻击方式
XSS攻击,通常是指攻击者通过 “HTML注入”篡改了网页,插入了恶意的脚本,从而在用户浏览网页时,对用户的浏览器进行控制或者获取用户的敏感信息(Cookie, SessionID等)的一种攻击方式。
页面被注入了恶意JavaScript脚本,浏览器无法判断区分这些脚本是被恶意注入的,还是正常的页面内容,所以恶意注入Javascript脚本也拥有了所有的脚本权限。如果页面被注入了恶意 JavaScript脚本,它可以做哪些事情呢?
(1)可以窃取 cookie信息。恶意 JavaScript可以通过 ”doccument.cookie“获取cookie信息,然后通过 XMLHttpRequest或者Fetch加上CORS功能将数据发送给恶意服务器;恶意服务器拿到用户的cookie信息之后,就可以在其他电脑上模拟用户的登陆,然后进行转账操作。
(2)可以监听用户行为。恶意JavaScript可以使用 "addEventListener"接口来监听键盘事件,比如可以获取用户输入的银行卡等信息,又可以做很多违法的事情。
(3)可以修改DOM 伪造假的登陆窗口,用来欺骗用户输入用户名和密码等信息。
(4)还可以在页面内生成浮窗广告,这些广告会严重影响用户体验。
2.XSS攻击的预防
(1)完善的过滤体系,对用户输入进行处理,只允许输入合法值,将其他值过滤掉
(2)httponly:许多xss攻击的目的是为了获取从服务器端返回的cookie,只要设置了httponly,在客户端向服务器端发起请求的时候仍然会携带cookie,但是脚本不能获取到cookie。