csrf 攻击 和 XSS 攻击

———————— XSS 攻击 ————————

//什么是跨站脚本攻击?

允许恶意web用户将代码植入到提供给其它用户使用的页面中。

 

// 例子:

恶意用户在帖子的评论里输入了:

while(true){
    alert('你关不掉我');
}

其他用户在访问这个帖子评论的时候,就会一直关不掉这个窗口。同理,可能执行 JS 脚本向其他地址发送一些信息,如 cookie 等。

 

// 过滤:

使用 htmlentities 等把字符转成成 html 实体。

 

 

 

———————— CSRF 攻击 ————————

// 什么是跨站请求伪造 (CSRF)

XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任。

 

// 关键问题:

web中用户身份验证的一个漏洞:简单的身份验证只能保证请求发自某个用户的浏览器,却不能保证请求本身是用户自愿发出的。

 

// 例子:

假如一家银行用以运行转账操作的URL地址如下: http://www.examplebank.com/withdraw?account=AccoutName&amount=1000&for=PayeeName

那么,一个恶意攻击者可以在另一个网站上放置如下代码: <img src="http://www.examplebank.com/withdraw?account=Alice&amount=1000&for=Badman">

—— 如果有账户名为Alice的用户访问了恶意站点,而她之前刚访问过银行不久,登录信息尚未过期,那么她就会损失1000资金。

 

// 解决方法:

1、检查 referer 字段

HTTP头中有一个Referer字段,用以检查来源地址。但是保不准有些攻击者攻击浏览器,修改 refer 字段的可能。

2、检查 token —— 常用

—— 要求在访问敏感数据请求时,要求用户浏览器提供不保存在cookie中,并且攻击者无法伪造的数据作为校验,那么攻击者就无法再运行CSRF攻击。

—— 服务器将其生成并附加在窗体中,其内容是一个伪随机数。当客户端通过窗体提交请求时,这个伪随机数也一并提交上去以供校验。正常的访问时,客户端浏览器能够正确得到并传回这个伪随机数,而通过CSRF传来的欺骗性攻击中,攻击者无从事先得知这个伪随机数的值,服务端就会因为校验token的值为空或者错误,拒绝这个可疑请求。

 

 

 

 

 

 

 

———— 占位符

转载于:https://www.cnblogs.com/windyet/articles/10156787.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值