常见前端安全问题总结
一、XSS攻击
全称跨站脚本攻击,简称XSS攻击,攻击者通过在目标网站上HTML注入篡改网页来插入恶意脚本,
当用户在浏览网页时获取用户的cookie等敏感信息,进一步做一些其他危害的操作。
根据攻击的来源,该攻击还可以分为:
1)存储型攻击:一般是在有评论功能的网站将恶意代码当作评论内容存储到服务端,受害者再次浏览网页,就会自动解
析评论内容并执行,比较简单是输入一个三方服务器的脚本(发送一个请求都三方服务器)到评论区,其他用户查看时,
就会获取这个脚本,并执行脚本的内容,就可以获取到用户的cookie
2)反射型攻击:也称为非持久型XSS,恶意代码并没有存储到目标网站的服务器中,而是通过一个具有诱惑性的链接跳转到目标网站,
当然这个链接除了正常的参数外还会有恶意代码,经常用来获取cookie;比如用户现在登陆了A网站,
然后在其他网站看到一个一刀万点暴击的游戏链接(链接中模拟原网站的搜索接口同时在参数中下发了一个请求),然后被动跳转到目标网站,
目标网站将恶意代码返回到页面被浏览器执行,就可以被获取到cookie信息
3)DOM型攻击:与前两种不同,不需要和服务端进行交互,攻击者构建被攻击网站的URL,URL参数中包含可执行的语句,比如eval或者innerHTML,通过诱惑性
的链接访问该连接后就可以执行恶意代码
防范措施:
1)前端进行输入过滤,将特殊字符进行转义或者输入限制,同时后端对特殊字符进行转义
2)设置HttpOnly,XSS的攻击目标主要是获取用户的cookie,设置此属性可以防止获取cookie
3)开启CSP,为页面的内容安全制定一系列防护措施,通过CSP可以指定资源文件的来源,避免跨域操作等
二、CSRF攻击
跨站请求伪造,攻击者获取到用户的cookie等登陆信息后,模拟网站请求进行攻击操作,比如删除帖子、银行转账
防范措施:
1)数据修改的请求尽量使用post而不是get请求
2)服务端判断请求头中Refer或者Origin的来源,对非本网站的进行过滤
3)用户登陆后,生成一个有时效的随机token,每个请求发起时携带该token,服务端判断token的真实性,这种token攻击者无法伪造