XSS和CSRF

XSS:跨站脚本(Cross-site scripting) 强调方法

CSRF:跨站请求伪造(Cross-site request forgery) 强调效果

CSRF为跨站请求伪造,其与XSS有点类似,不过区别在于CSRF不一定依赖于JavaScript


其实二者是交叉的。


XSS:

XSS跨站脚本攻击过程最简单演示

https://blog.csdn.net/smstong/article/details/43561607

     https://www.cnblogs.com/lovesong/p/5199623.html

CSRF

攻击方法1:

A给B发一个网址,B打开后,会自动下载一个网页或脚本到电脑硬盘上。
B打开这个网页或脚本,这个网页或脚本就会访问硬盘里面的信息,并悄悄的把信息发给B

攻击方法2:
A的浏览器已经登录了自己的网银,或其它网站。
B发给A一个网址,A打开这个网址。
这个页面中的脚本向网银网址发送post转账请求。(即使网银网址不允许跨域访问,但是他还是会处理这个post请求,因为跨域访问,服务端是有相应的,只是浏览器发现服务端不支持跨域访问,就直接抛掉服务端发过来的应答消息)
预防方法1:银行服务端检查 referer字段,看看post是不是从自己的网页发过来的。(B是否可以修改post消息中的 referer字段?)
预防方法2:银行服务端每次生成一个随机值,放在在网页和cookie中。post请求时,必须把这两个值都带过来,且两个值相同,才认为网页是自己的。(B发出的post,cookie中的随机值是正确的,但是B不知道随机值是什么,所以只能瞎猜,猜中概率极低)

攻击方法3:
A网站的转账操作,是一个get消息

B网址中,可以写上 src=“转账url”,从而实现非法转账


今天尝试进行了一下CSRF攻击,每次发出的请求都没有被攻击网址的cookie

关键是要加上下面红色代码

function state_Change(){  
      if (xmlhttp.readyState==4)  
         console.log('99999999999', xmlhttp.status, xmlhttp.responseText);  

    } 

xmlhttp=new XMLHttpRequest();  

xmlhttp.withCredentials = true;//支持跨域发送cookies

xmlhttp.onreadystatechange=state_Change;  

xmlhttp.open("GET","http://127.0.0.1:5000/hello/",true);  
xmlhttp.send(null);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值