博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何防止XSRF攻击
阅读量:5918 次
发布时间:2019-06-19

本文共 1100 字,大约阅读时间需要 3 分钟。

XSRF全称是 cross-site request forgery(跨站点请求伪造),也称为CSRF,是一种常见的web攻击方式。

攻击形式描述如下:

1.用户登录并访问一个正常的站点 http://www.biz.com;

2.在同一个浏览器实例下,用户打开了恶意网站 http://www.bad.com;(至于用户怎么会打开这个恶意网站,可能是恶意网站通过一些链接或者垃圾邮件等等形式诱骗用户点了某一个链接)

3.恶意网站页面里包含下面一段代码:

<form method="POST" name="evilform" target="hiddenframe"

action="https://www.biz.com/update_profile">

<input type="hidden" name="password" value="heihei">

</form>

<iframe name="hiddenframe" style="display: none">

</iframe>

<script>

document.evilform.submit();

</script>

你明白下面会发生什么了:用户在不知觉的情况下,被修改了密码。

如何防御XSRF攻击,方法比较多,比如在上面的例子中,要修改密码,必须提供旧密码,那么就可以有效的避免攻击。但是,XSRF是一个普遍存在的问题,不能所有场景下都需要用户输入一串东西,用户肯定会崩溃。

比较靠谱和通用的解决方案如下:

在进行一些改变系统数据的重要操作中(比如提交订单,修改密码,删除..等操作),加入一个供校验的action token。这个action token是由应用先前生成的(如绘制表单时),作为表单的一个hidden字段。

这个action token的生成必须要有些讲究,不能让骇客随意冒充过关,一个靠谱的生成算法如下:

action token = F(K,C),其中K是一个只有应用服务器才知道的密钥,C是本次会话的标识,如jsessionid。

应用在接受到请求时,首先校验action token是否合法,校验的方式是取出jsessionid,然后使用F(K,C)计算action token,如果计算的结果和表单提交过来的action token值一样,则放行。

这种方案可以有效的防御XSRF攻击,因为恶意网站无法知道K和C的值,无法伪造action token。

但是如果你的站点遭遇了XSS攻击,那么一切都白搭,因为骇客可以轻易的获取session cookie,冒充用户身份直接攻击即可。

来自:

转载地址:http://aifvx.baihongyu.com/

你可能感兴趣的文章
(转载)BPM 的介绍
查看>>
图片加载不出来 打入默认图片
查看>>
session、cache、cookie的区别
查看>>
android wifi Beacon帧解析
查看>>
简单描述如何安装配置一个apache开源版hadoop,只描述即可,无需列出完整步骤,能列出步骤更好...
查看>>
【LaTeX】配置Emacs org-mode利用latex生成pdf文件
查看>>
《1024伐木累》- 老王请客吃晚饭,介绍对象
查看>>
【题解】【排列组合】【回溯】【Leetcode】Gray Code
查看>>
iOS: (库) 图片异步下载/缓存-SDWebImage的使用
查看>>
MySql开启远程账户登陆总结
查看>>
node.js 简单的获取命令参数
查看>>
Xcode8注释快捷键以及相关插件使用无效解决方法
查看>>
论创业者心态心智
查看>>
HDU 4268 Alice and Bob(贪心+Multiset的应用)
查看>>
linux内核剖析(十一)进程间通信之-共享内存Shared Memory
查看>>
VisualStudio2017密钥(key)我随便输入一下居然通过了?????????!!!!!!!!!!!!
查看>>
CSS HACK区别IE6、IE7、IE8、Firefox兼容性
查看>>
Centos:新安装mysql修改root密码
查看>>
h5活动
查看>>
用css3 gradient实现背景平铺,代替传统的图片平铺方法
查看>>