首页 > 代码库 > 关于前端安全

关于前端安全

1. 两种跨站攻击:XSS:跨站脚本(Cross-site scripting)
CSRF:跨站请求伪造(Cross-site request forgery)
2.XSS特点:是不对服务器端造成任何伤害,而是通过一些正常的站内交互途径,例如发布评论,提交含有 JavaScript 的内容文本。这时服务器端如果没有过滤或转义掉这些脚本,作为内容发布到了页面上,其他用户访问这个页面的时候就会运行这些脚本
1.盗取用户cookie,伪造用户身份
2.控制用户浏览器
3.结合浏览器及其插件漏洞,下载病毒木马到浏览者的计算机运行
4.衍生URL跳转漏洞
5.官网挂钓鱼网站
6.蠕虫攻击
3.CSRF:冒充用户之手,伪造请求
-->横向提权(修改个人数据);纵向提权(添加用户);
 
区别:XSS 是实现 CSRF 的诸多途径中的一条,但绝对不是唯一的一条。一般习惯上把通过 XSS 来实 现的 CSRF 称为 XSRF。
xss:跨站点攻击。xss攻击的主要目的是想办法获取目标攻击网站的cookie,因为有了cookie相当于有了session,有了这些信息就可以在任意能接进互联网的PC登陆该网站,并以其他人的身份登陆做破坏。预防措施防止下发界面显示html标签,把</>等符号转义。
csrf:跨站点伪装请求。csrf攻击的主要目的是让用户在不知情的情况下攻击自己已登录的一个系统,类似于钓鱼。如用户当前已经登陆了邮箱或bbs,同时用户又在使用另外一个,已经被你控制的网站,我们姑且叫它钓鱼网站。这个网站上面可能因为某个图片吸引你,你去点击一下,此时可能就会触发一个js的点击事件,构造一个bbs发帖的请求,去往你的bbs发帖,由于当前你的浏览器状态已经是登陆状态,所以session登陆cookie信息都会跟正常的请求一样,纯天然的利用当前的登陆状态,让用户在不知情的情况下,帮你发帖或干其他事情。预防措施,请求加入随机数,让钓鱼网站无法正常伪造请求。
严格意义上来说,CSRF 不能分类为注入攻击,因为 CSRF 的实现途径远远不止 XSS 注入这一条。通过 XSS 来实现 CSRF 易如反掌,但对于设计不佳的网站,一条正常的链接都能造成 CSRF。
 
4.防御 CSRF 的诸多方法还没几个能彻底无解的,只能通过提高攻击门槛尽可能的防御。
针对表单比较可行的解决方案遵循三步:
1.在用户登录时,设置一个CSRF的随机token,同时种植在用户的cookie中,当用户浏览器关闭或者再次登录、退出时,清除token;
2.在表单中,生成一个隐藏域,它的值就是cookie中随机token
3.表单提交后,在web服务器端,判断表单中是token是否和用户cookie中的token一致,如果不一致或者为空,就判断为CSRF攻击。
 
当出现GET请求修改用户数据时,一旦在url中出现了csrftoken,当前页面就不允许出现用户定义的站外链接,否则攻击者可以诱惑用户点击攻击者定义的链接,访问在自己的网站,从refer中,获取url中的csrftoken。
 

关于前端安全