首页 » 简单了解CSRF攻击和XSS攻击

简单了解CSRF攻击和XSS攻击

CSRF

CSRF:跨站点请求伪造(Cross—Site Request Forgery)

CSRF实质上就是盗用身份,来实现发送恶意请求

在访问某个“可信”站点,生成Cookie,再打开某个恶意网站,而这个恶意网站带有CSRF攻击的脚本,然后通过引诱用户触发该脚本,就会向那个可信站点发送恶意请求

例如:

\<img src ="http://xxx.xxx/test?xxx=666">

只要访问就会发生该恶意请求,也可以是某超链接或者按钮等等

而解决方法就是保证请求来源自当前站点,例如Referer字段,这个字段记录来源站点的地址,通过判断Referer字段上的域名,来判断是否是当前网站自己的请求

这个方法有个缺点就是由浏览器提供,不能保证浏览器自己有没有安全漏洞,不然还是能够伪造Referer字段,而且如果用户设置不提供Referer字段,那也会默认导致认为是CSRF攻击

还有一个方法就是通过添加token来处理,请求地址使用一串令牌(加密),来确保是当前站点发送请求,因为哪怕是伪造请求,也不知道令牌是什么,而且还搭配XMLHttpRequest来请求,确保请求信息不被Referer字段收录

JavaScript简单实现方法

let referer = document.location.href;
if(referer != null && referer.startsWith("https://cjlio.com")){
    console.log("验证成功!!!")
}else{
     console.log("验证失败!!!")
}


防御措施:token身份验证,页面来源验证(referer)等等


XSS:跨站脚本攻击(Cross Site Scripting),因为避免和层叠样式表混淆,因此叫XSS

XSS攻击原理就是在页面插入恶意脚本,当页面被访问了,那么这个恶意脚本被执行,从而达到恶意攻击用户的目的

例如:在某个页面评论上加,那么如果没有做过xss攻击防御的站点,其他用户访问到这个页面,那么就会执行该程序

做那些标签防御,都可以闭合绕过,都是无用功,例如:通过属性值来输出

也用通过过滤