好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>后端语言>PHP
<tfoot draggable='sEl'></tfoot>

phpcsrf攻击防范 php防止攻击

很多站长朋友们都不太清楚phpcsrf攻击防范,今天小编就来给大家整理phpcsrf攻击防范,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 前后端分离下如何防御CSRF攻击 2、 什么是CSRF攻击,如何预防 3、 什么是 CSRF 攻击,如何避免? 4、 有效防范CSRF攻击的手段有哪些? 5、 什么是csrf攻击? 6、 如何实现php的安全最大化?怎样避免sql注入漏洞和xss跨站脚本攻击漏洞 前后端分离下如何防御CSRF攻击

网上有很多关于防御CSRF攻击的文章,大都雷同。方法主要有三种:

第二种方法大都是通过在form中填充隐藏的csrf_token。这种方法适用于服务器端渲染的页面,对于前后端分离的情况就不太适用了。

针对前后端分离情况,我有两种方法。

浏览器通过JavaScript读取cookie中的Csrf_token,然后在发送请求时作为自定义HTTP头发送回来。

服务器读取HTTP头中的Csrf_token,与cookie中的Csrf_token比较,一致则放行,否则拒绝。

这种方法为什么能够防御CSRF攻击呢?

关键在于JavaScript读取cookie中的Csrf_token这步。由于浏览器的同源策略,攻击者是无法从被攻击者的cookie中读取任何东西的。所以,攻击者无法成功发起CSRF攻击。

什么是CSRF攻击,如何预防

CSRF攻击,全称为“Cross-site request forgery”,中文名为跨站请求伪造,也被称为“One Click

Attack”或者“Session Riding”,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。

XSS主要是利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求,来利用受信任的网站。与XSS相比,CSRF更具危险性。

CSRF攻击的危害:

主要的危害来自于攻击者盗用用户身份,发送恶意请求。比如:模拟用户发送邮件,发消息,以及支付、转账等。

如何防御CSRF攻击:

1、重要数据交互采用POST进行接收,当然POST也不是万能的,伪造一个form表单即可破解。

2、使用验证码,只要是涉及到数据交互就先进行验证码验证,这个方法可以完全解决CSRF。

3、出于用户体验考虑,网站不能给所有的操作都加上验证码,因此验证码只能作为一种辅助手段,不能作为主要解决方案。

4、验证HTTP Referer字段,该字段记录了此次HTTP请求的来源地址,最常见的应用是图片防盗链。

5、为每个表单添加令牌token并验证。

什么是 CSRF 攻击,如何避免?

CSRF:Cross-Site Request Forgery(中文:跨站请求伪造),可以理解为攻击者盗用了你的身份,以你的名义发送恶意请求,比如:以你名义发送邮件、发消息、购买商品,虚拟货币转账等。

防御手段:

验证请求来源地址;

关键操作添加验证码;

在请求地址添加 token 并验证。

有效防范CSRF攻击的手段有哪些?

此前,我为大家介绍过SSRF攻击、XSS攻击以及SQL注入攻击的原理及防范手段,本篇文章我将为大家介绍一下CSRF攻击-跨站请求伪造。那么CSRF攻击是什么?防范手段有哪些?具体内容请看下文。

CSRF攻击是什么?

CSRF,全拼为Cross-site request forgery,也被称为one-click attack或者session

riding,中文名称叫跨站请求伪造。一般来说,攻击者通过伪造用户的浏览器的请求,向访问一个用户自己曾经认证访问过的网站发送出去,使目标网站接收并误认为是用户的真实操作而去执行命令。常用于盗用账号、转账、发送虚假消息等。

攻击者利用网站对请求的验证漏洞而实现这样的攻击行为,网站能够确认请求来源于用户的浏览器,却不能验证请求是否源于用户的真实意愿下的操作行为。

CSRF攻击防范手段有哪些?

第一、验证HTTP Referer字段

HTTP头中的Referer字段记录了该HTTP请求的来源地址。在通常情况下,访问一个安全受限页面的请求来自于同一个网站,而如果黑客要对其实施CSRF攻击,他一般只能在他自己的网站构造请求。因此,可以通过验证Referer值来防御CSRF攻击。

第二、使用验证码

关键操作页面加上验证码,后台收到请求后通过判断验证码可以防御CSRF。但这种方法对用户不太友好。

第三、在请求地址中添加token并验证

CSRF攻击之所以成功,是因为黑客可以完全伪造用户的请求,该请求中所有的用户验证信息都是存在于cookie中,因此黑客可以在不知道这些验证信息的情况下直接利用用户自己的cookie来通过安全验证。要抵御CSRF,关键在于在请求中放入黑客所不能伪造的信息,并且该信息不存在于cookie中。可以在HTTP请求中以参数的形式加入一个随机产生的token,并在服务器端建立一个拦截器来验证这个token,如果请求中没有token或者token内容不正确,则认为可能是CSRF攻击而拒绝该请求。这种方法要比检查Referer要安全,token可以在用户登陆后产生并放于session中,然后在每次请求时把token从session中拿出,与请求中的token进行比对,但这种方法的难点在于如何把token以参数的形式加入请求。

对于get请求,token将附在请求地址之后,这样URL就变成:。

对于post请求,要在form的最后加上<input

type="hidden" name="csrftoken" value="tokenvalue"/>,这样就把token以参数的形式加入请求了。

第四、在HTTP头中自定义属性并验证

这种方法也是使用token并进行验证,和上一种方法不同的是,这里并不是把token以参数的形式置于HTTP请求中,而是把它放到HTTP头中自定义的属性里。通过XMLHttpRequest这个类,可以一次性给所有该类请求加上csrftoken这个HTTP头属性,并把token值放入其中。这样解决了上种方法在请求中加入token的不便;同时,通过XMLHttpRequest请求的地址不会被记录到浏览器的地址栏,也不用担心token会透过Referer泄露到其他网站中去。

什么是csrf攻击?

CSRF的攻击方式可以概括为:CSRF攻击者盗用了你的身份,并以你的名义发送恶意请求。

比如使用你的账号发送邮件,发消息,盗取你的账号,删除你的个人信息,购买商品,虚拟货币或银行转账。

总而言之,就是会造成个人隐私泄露以及财产损失。

扩展资料:

防御csrf攻击

验证码

验证码是一种防御CSRF攻击有效方法。其原理是每一种操作都让用户输入验证码。

CSRF攻击是在攻击者的攻击站点中构造网络请求,然后用户在不知情的状况下触发,而强制输入验证码,则可以让用户知道当前在操作什么,进而达到预防的目的。

但这种方式有一个问题,就是每个操作都强制用户输入验证码,因此用户体验并不好,所以并不常用,只能作为一种辅助的预防手段。

如何实现php的安全最大化?怎样避免sql注入漏洞和xss跨站脚本攻击漏洞

使用php安全模式

服务器要做好管理,账号权限是否合理。

假定所有用户的输入都是“恶意”的,防止XSS攻击,譬如:对用户的输入输出做好必要的过滤

防止CSRF,表单设置隐藏域,post一个随机字符串到后台,可以有效防止跨站请求伪造。

文件上传,检查是否做好效验,要注意上传文件存储目录权限。

防御SQL注入。 

避免SQL注入漏洞

1.使用预编译语句

2.使用安全的存储过程

3.检查输入数据的数据类型

4.从数据库自身的角度考虑,应该使用最小权限原则,不可使用root或dbowner的身份连接数据库。若多个应用使用同一个数据库,也应该为数据库分配不同的账户。web应用使用的数据库账户,不应该有创建自定义函数,操作本地文件的权限。

避免XSS跨站脚本攻击

1.假定所有用户输入都是“邪恶”的

2.考虑周全的正则表达式

3.为cookie设置HttpOnly,防止cookie劫持

4.外部js不一定可靠

5.出去不必要的HTML注释

6. 针对非法的HTML代码包括单双引号等,使用htmlspecialchars()函数。

关于phpcsrf攻击防范的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于phpcsrf攻击防范 php防止攻击的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did195866
更新时间:2023-04-26   阅读:17次

上一篇: php商城服务号 php服务是什么

下一篇:php递归数组添加 php递归函数1加到100

最新资料更新

  • 1.php判断对象函数 php判断为空的方法有哪些
  • 2.php下载表格 php下载功能
  • 3.学php学什么专业 学php可以干什么工作
  • 4.下载并安装php 下载并安装央视网
  • 5.海康sdk只有php 海康sdk python
  • 6.php开启sslopen php开启gd库
  • 7.无法下载file.php 无法下载filedownload
  • 8.铜仁php招聘信息 铜仁工作招聘信息
  • 9.nginx分离部署php nginx分发请求
  • 10.php编写确认密码 php用户名密码
  • 11.zblogphp分类 zblog asp
  • 12.php余数1 php math
  • 13.phpisset多个值 php __set __get
  • 14.php在线运行测试 php 测试工具
  • 15.php客户信息管理 php用户管理
  • 16.phpword导出 phpspreadsheet导出
  • 17.iisphpma的简单介绍
  • 18.php文件工具类 php文件处理
  • 19.php文字合到图片 php 图片合成
  • 20.phpml源码安装 下载了个php源码包,怎么使用

CopyRight:2016-2025好得很程序员自学网 备案ICP:湘ICP备09009000号-16 http://haodehen.cn
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]