csrf攻击及其防范介绍
来源:互联网 发布:甲骨文停止java更新 编辑:程序博客网 时间:2024/05/01 02:20
CSRF(Cross-site request forgery),跨站请求伪造
亦称为:one click attack/session riding,缩写为:CSRF/XSRF。
CSRF,首先要获取站点用户登录信息,然后冒充正常用户登录,进行破坏活动,受害方为正常用户和站点。
攻击类型:显示攻击 / 隐式攻击
注意:用户网站是否存在脚本注入的漏洞,并不影响 CSRF 攻击,通过使用第三方存在安全隐患的网站同样可以完成 CSRF 攻击。
csrf攻击无法完全防范,只能提高攻击的门槛。方法比如:
改良站内 API 的设计
对于发布帖子这一类创建资源的操作,应该只接受 POST 请求,而 GET 请求应该只浏览而不改变服务器端资源。最理想的做法是使用restful风格的 API 设计,GET、POST、PUT、DELETE 四种方法对应资源的读取、创建、更新、删除操作。现在的浏览器基本不支持在表单中使用 PUT 和 DELETE 请求方法,我们可以使用 ajax 提交请求,也可以使用隐藏域指定请求方法,然后用 POST 模拟 PUT 和 DELETE。
这样,不同的资源操作区分的非常清楚,集中处理非 GET 类型的请求即可。
- 检测http的头信息refer
- 验证码
- CSRF token,请求令牌
Token 使用原则
Token要足够随机————只有这样才算不可预测
Token是一次性的,即每次请求成功后要更新Token————这样可以增加攻击难度,增加预测难度
Token要注意保密性————敏感操作使用post,防止Token出现在URL中
在表单中加入隐藏域,提交Token,然后在后端进行验证Token是否正确,注意,在验证后,Token就应该被销毁
CSRF 主流防御方式是在后端生成表单的时候生成一串随机 token ,内置到表单成为一个字段,同时,将此串 token 置入 session 中。每次表单提交到后端时都会检查这两个值是否一致,以此来判断此次表单提交是否是可信的。提交过一次之后,如果这个页面没有生成 CSRF token ,那么 token 将会被清空,如果有新的需求,那么 token 会被更新。
Alas, the final solution is using CSRF tokens. How do CSRF tokens work?
Server sends the client a token.
Client submits a form with the token.
The server rejects the request if the token is invalid
与XSS的联系和区别:
联系
CSRF可以利用XSS实现更有用的攻击。
XSS是跨站脚本,是实现CSRF的一种方式,是在站点的输入域执行脚本攻击,那么站点就需要对输入域的字段进行过滤。区别
CSRF不是XSS的子类,他们的本质问题不一样。XSS本质是服务端对输入过滤不严而后输出的时候将客户端的脚本再输出。
CSRF是服务端对用户的身份认证不严格(cookie等),使得攻击者冒充用户达到攻击目的。
防御CSRF的前提是防御XSS
最后:做好防御,前提是清楚要保护的对象,是那些直接产生数据变化的服务,而对于GET操作来说,则不需要,POST,UPDATE,DELETE操作等需要进行防御。
- csrf攻击及其防范介绍
- CSRF攻击介绍、模拟、防范
- CSRF攻击防范
- CSRF攻击防范
- CSRF攻击和防范
- CSRF的攻击和防范
- csrf攻击简单介绍
- CSRF攻击的原理及防范
- CSRF攻击介绍及防御
- CSRF攻击介绍及防御
- 跨站脚本攻击(csrf)的原理与防范
- ci框架如何手动进行csrf攻击防范
- 同步令牌模式防范CSRF跨站请求伪造攻击
- Web站点如何防范XSS、CSRF、SQL注入攻击
- Web应用的输入攻击及其防范
- SQL注入攻击及其防范检测技术研究
- SQL注入攻击及其防范检测技术研究
- SQL注入攻击及其防范检测
- jdbc数据库操作工具类--DBUtil
- ALM的使用过程及图解
- HDU 2680 Choose the best route(Dijkstra,建图的方式很巧妙)
- 按字节提取整形数值(按位与运算符“&”、右移位运算符“>>”)
- android TextView自动滚动以及Java中改变显示内容
- csrf攻击及其防范介绍
- MATLAB问题之Out of memory. Type HELP MEMORY for your options
- iOS学习日记(第一天)
- C语言中的变量&命名规范
- Android经典底部选项卡集成方式之二
- 二、安装SVN及配置
- FastGUI教程
- Activity--intent
- Win7 远程桌面限制IP