CSRF简单理解---HTTP Referer字段验证(Java实现)

HTTP头部字段解析:Host、Referer与Origin实战指南 HTTP头部字段是Web开发中的核心技术组件,其中Host、Referer和Origin在虚拟主机路由、安全防护和跨域请求中扮演关键角色。Host字段解决单IP多域名托管问题,Referer用于请求来源追踪与CSRF防护,而Origin则是CORS机制的核心标识。理解这些字段的工作原理,能有效避免Nginx配置错误、CSRF攻击和CORS预检失败等常见问题。通过合理配置反向代理、Referrer-Policy和Access-Control-Allow-Origin,开发者可以提升Web应用的安全性和性能。本 阅读详情

CSRF攻击简单来说就是:
1.你可以通过A网站发送请求“转100块给小明”。
2.然后你碰巧又上了X网站,X的某链接藏着一条操作”转100快给小芳”。
3.当你点击X网站的某个链接时,会利用你在A网站的session信息,发送请求”转100快给小芳”。
所以CSRF防御的重点就是怎么判断发送请求的是不是原网站。

referer的验证原理简单来说就是:
比对HTTP请求发送的网站(referer字段)和
当前网站(request.getScheme())+”://”+request.getServerName())是不是一个网站。

java实现代码如下


    HttpServletRequest request= (HttpServletRequest) request;
    String referer = request.getHeader("referer");
    StringBuffer stringBuffer = new StringBuffer();
        stringBuffer.append(request.getScheme()).append("://").append(request.getServerName());
        if(referer != null && !referer.equals("") ){ 
            if(referer.lastIndexOf(String.valueOf(stringBuffer)) != 0){             
                return false; //验证失败            
            }
        }

关于空Referer

首先,我们对空Referer的定义为,Referer 头部的内容为空,或者,一个HTTP请求中根本不包含Referer头部。

那么什么时候HTTP请求会不包含Referer字段呢?根据Referer的定义,它的作用是指示一个请求是从哪里链接过来,那么当一个请求并不是由链接触发产生的,那么自然也就不需要指定这个请求的链接来源。

比如,直接在浏览器的地址栏中输入一个资源的URL地址,那么这种请求是不会包含Referer字段的,因为这是一个“凭空产生”的HTTP请求,并不是从一个地方链接过去的。
那么在防盗链设置中,允许空Referer和不允许空Referer有什么区别?
在防盗链的白名单设置中,如果指名白名单中包含空的Referer,那么通过浏览器地址栏直接访问该资源URL是可以访问到的;

但如果不指名需要包含空的Referer,那么通过浏览器直接访问也是被禁止的。

看到比较好的相关网页:
http://blog.youkuaiyun.com/dhweicheng/article/details/76996709
http://blog.youkuaiyun.com/u011217058/article/details/78331170
http://blog.youkuaiyun.com/stpeace/article/details/53512283
关于token实现的简易版
http://blog.youkuaiyun.com/huqingpeng321/article/details/52900550
实际大型项目中客户端token存于cookie,再加上加密算法,有兴趣可以看看JWT传递方法。

通过验证Referer解决CSRF安全防御问题 一、背景 JAVAWEB 类项目处于客户验收阶段,在安全扫描处出现 CSRF 问题,通过多个博客中解决思路都无法解决。后来通过同事提醒 可以试试判断 Referer页面来源参数,最终使用该方法解决问题。 二、环境 服务器:Linux 前端:Angular 后端:Springboot Java 三、安全证书 四、解决方法 后端拦截器判断访问来源,其它地方不用修改。 @... 阅读详情

相关推荐

安全01-后台增加Referer校验防范CSRF跨站请求伪造

CSRF,中文名字,跨站请求伪造。攻击者(黑客,钓鱼网站)盗用了你的身份,以你的名义发送恶意请求,这些请求包括发送邮件、发送消息、盗取账号、购买商品、银行转账,从而使你的个人隐私泄露和财产损失。 防范方案: 1、验证HTTP Referer字段。 2、请求地址中添加token并验证(token不放在cookie中,放在http请求参数中,服务端对其进行验证) 3、将token加入http头属性中,避免了token出现在浏览器中,被泄露。 Referer验证方案: 根据HTTP协议,在HTTP头部中有一个Re

windows_apple的博客 4036

跨站请求伪造CSRF防护方法

CSRF(Cross-site request forgery跨站请求伪造,也被称成为“one click attack”或者session riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。 一、CSRF攻击原理 CSRF攻击原理比较简单,如图1所示。其中Web A为存在CSRF漏洞的网站,Web B为攻击者构建的恶意网站,User C为Web A网站的合法用户。 ...

jijithin 1030

HTTP Referer注入攻击:原理、实战与防御指南

在Web安全领域,注入攻击是长期存在的核心威胁之一,其本质源于应用程序对用户输入数据的不充分验证。攻击者通过构造恶意输入,欺骗后端系统将其作为代码或指令执行,从而窃取数据、破坏系统或提升权限。从技术原理看,注入漏洞的根源在于数据与代码的边界模糊,尤其在SQL查询、系统命令调用或文件路径拼接等场景中,未经验证的外部输入可直接改变程序执行逻辑。这种漏洞的技术价值在于其极高的危害性和广泛的存在性,是渗透测试与代码审计的重点对象。应用场景遍及所有处理用户输入的功能模块,包括但不限于登录认证、数据查询和文件上传。本文

weixin_34377919的博客 359

java referer伪造_通过判断请求Header中的Referer来防止伪造请求

其实不会根本性的解决这个问题。解决方法:在web.xml中增加:refererFilterltd.miku.web.securityenhance.xss.RefererFilterrefererFilter/*REQUEST然后RefererFilter的内容是:import com.inspur.ssr.web.system.service.impl.ExpireSessionImpl;imp...

weixin_35641153的博客 1104

网络安全自学指南:从Web漏洞原理到DVWA CSRF实战攻防

Web安全的核心在于理解常见漏洞的原理与防御机制。以跨站请求伪造(CSRF)为例,其本质是攻击者诱骗已认证用户在不知情的情况下执行非预期操作,利用的是Web应用对用户浏览器的过度信任。这种漏洞的防御通常依赖于Token验证、Referer检查等机制。掌握CSRF等基础漏洞,对于构建安全的Web应用至关重要。本文以DVWA靶场为实践环境,详细拆解了CSRF从低到高不同安全等级的攻防对抗过程,并融入了SQL注入、XSS等【热词】技术点,展示了如何通过手工与工具结合的方式,在授权环境下进行系统性的漏洞利用学习,为

weixin_34034670的博客 526

CSRF实战案例—绕过referer值验证

在一个添加管理员的界面引起了我的注意

渗透之路,攻防之间皆学问 4476

SpringSecurity原理解析(八):CSRF防御解析

在自定义SpringSecurity配置文件中的configure方法中,通过 HttpSecurity 先调用csrf()从 Spring Security 4.0 开始,默认情况下会启用 CSRF 保护,以防止 CSRF 攻击应用程序,2)请求到来时,程序会从请求中获取提交的csrfToken,同时会从HttpSession中获取。之前存储的csrfToken进行比较,如果相同则认为是合法的请求,继续后面的操作,这种办法简单易行,工作量低,仅需要在关键访问处增加一步校验,来检查 Referer字段。

liang8999的博客 2141

AUTOSAR入门

一、AUTOSAR是什么 AUTOSAR组织自己的介绍是 AUTOSAR (AUTomotive Open System ARchitecture) is a worldwide development partnership of vehicle manufacturers, suppliers, service providers and companies from the automot...

天涯遍地是小草的博客 3万+

CSRF:攻击与防御

 CSRF概念: CSRF跨站点请求伪造(Cross—Site Request Forgery),跟XSS攻击一样,存在巨大的危害性,你可以这样来理解: 攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作。比如以你的名义发送邮件、发消息,盗取你的账号,添加系统管理员,甚至于购买商品、虚拟货币转账等。  如下:其中Web A为...

琦彦 670

自动驾驶感知融合算法拆解:从华为MDC案例看前融合与大融合的工程实现

本文深度解析了华为MDC平台在自动驾驶感知融合算法中的前沿工程实践,重点探讨了Camera-Lidar前融合与多传感器大融合的架构设计。通过异构融合架构、数据流优化和场景化应用,华为MDC平台实现了高效、安全的感知能力,显著提升了自动驾驶系统的性能与可靠性。

weixin_29198045的博客 535

逆向实战:Soul聊天协议加密与Frida绕过检测技术解析

本文详细解析了Soul聊天协议的逆向工程实战,重点介绍了使用Frida绕过检测技术的具体方法。通过IDA和JADX进行静态分析,结合Frida动态调试,揭示了数据加密与解密的核心逻辑,并提供了完整的逆向工作流和实用技巧,帮助开发者深入理解协议逆向过程。

weixin_29260291的博客 926

【CSRF技巧拓展】————5、浅谈Session机制及CSRF攻防

在讲解CSRF攻击原理及流程之前,我想先花点时间讲讲浏览器信息传递中的Session机制。 Session机制 Session,中文意思是“会话”。对于“会话”我的理解是客户端与服务端间通信的一种方式,也可以简单的理解为一个用户从打开浏览器开始,访问一个web网站,点击某些超链接,访问某些服务端的资源,然后关闭浏览器的这一整个过程就是一次会话。   早期,客户端与服务端之间的每次信息传递都是...

Fly_鹏程万里 1359

QTest 单元测试框架及单元测试思考

qt 单元测试框架 QTEST 及思考

一个老菜鸟的学习分享 1万+

CSRF

CSRF 背景与介绍 CSRF(Cross Site Request Forgery, 跨站域请求伪造)是一种网络的攻击方式,它在 2007 年曾被列为互联网 20 大安全隐患之一。其他安全隐患,比如 SQL 脚本注入,跨站域脚本攻击等在近年来已经逐渐为众人熟知,很多网站也都针对他们进行了防御。然而,对于大多数人来说,CSRF 却依然是一个陌生的概念。即便是大名鼎鼎的 Gmail, 在...

dasfawef1255612的博客 114

Qt软件开发: 开发MQTT客户端软件,模拟硬件登录各大主流MQTT平台完成通信

此软件是使用QT编写MQTT客户端(根据mqtt官方文档3.1.1,自己实现过程代码,没有使用其他库,稳定,方便移植),模拟硬件登录各大主流的MQTT物联网服务器,完成主题订阅、发布等操作,实现数据通信交互。 已经测试OneNET、阿里云IOT、华为云IOT、百度IOT、电信IOT、原子云IOT等等常用的物联网云平台,都可以正常实现数据通信,只要云平台支持标准MQTT协议都可以使用此软件进行登录测试。 特别是大家没有硬件,想测试与MQTT物联网云服务器通信的,此软件是非常的方便。使用简单,比官方的软件操作

1万+

UCIE Specification详解(七)

Logical Physical Layer(逻辑物理层)

Crazzy_M的博客 1687

教你轻松解决CSRF跨站请求伪造攻击

CSRF(Cross-site request forgery)跨站请求伪造,通过伪装来自受信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比XSS更具危险性。

华为云官方博客 5207

AUTOSAR&UDS 理论要点及isolar实战-DEM模块

从这节开始,将讲解UDS诊断中非常重要的知识点:故障事件触发、故障信息上报、故障信息处理、故障信息存储和故障系统降级,后续会陆续更新。

cqaa11的博客 552

spring-security(记住密码,CSRF)

PersistentTokenRepository实现类InMemoryTokenRepositoryImpl基于内存实现JdbcTokenRepositoryImpl基于数据库实现@Bean。

2302_79087378的博客 909

把 ABAP Smart Form 输出变成可直接下载的 PDF 二进制:OTF 到 XSTRING 的一条龙实践

SAP Smart Forms 生成 PDF 的实用方案:通过 OTF 格式转换实现高效输出。Smart Forms 本身不直接生成 PDF,而是输出 OTF 格式数据,需通过 CONVERT_OTF 函数转换。本文提供两种实现路径:传统的 Spool 方式和更优的直接获取 OTF 方式,后者避免了 Spool 的维护负担。核心代码演示了如何通过设置 GETOTF 参数获取 OTF 数据,并转换为 PDF 二进制流,适用于前端下载、接口传输等场景。同时介绍了 SSF_OPEN/SSF_CLOSE 方法用于批

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 675

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

一文读懂CSRF攻击与防御

CSRF概念:CSRF跨站点请求伪造(Cross—Site Request Forgery),跟XSS攻击一样,存在巨大的危害性,你可以这样来理解: 攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作,比如以你的名义发送邮件、发消息,盗取你的账号,添加系统管理员,甚至于购买商品、虚拟货币转账等。 如下:其中Web A为存在CSRF漏洞的网站,Web B为攻击者构建的恶意网站,User C为Web A网站的合法用户。 CSRF攻击介绍及防御

java爱好者 388

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

CSRF、XSS 科普与防御

CSRF (Cross Site Request Forgery) 跨站请求伪造 攻击 案例演示: 防御 解决方案: 1. 尽量使用 POST ; 2. 加入验证码; 3. 验证 Referer

edwardwzw的博客 3059

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

CSRF漏洞深度解析:从原理到防御的Web安全实战指南

跨站请求伪造(CSRF)是一种利用Web应用身份认证机制漏洞的攻击方式,其核心原理在于浏览器会自动携带用户Cookie向已认证的网站发起请求。攻击者通过构造恶意链接或页面,诱导已登录用户触发非授权操作,从而在用户无感知的情况下执行转账、修改密码等敏感行为。这种攻击之所以有效,是因为服务器默认信任由浏览器自动发起的请求,而无法区分请求是否源于用户真实意图。在Web安全领域,CSRF常与XSS漏洞形成组合攻击,进一步放大危害。防御CSRF的关键在于打破这种自动信任机制,主流方案包括为每个敏感请求添加不可预测的A

weixin_30902251的博客 387

CSRF攻击原理与防御实战:从Cookie机制到Token验证的完整方案

在Web安全领域,跨站请求伪造(CSRF)是一种利用用户对目标网站的信任发起的攻击。其核心原理在于浏览器默认会在跨站请求中自动携带目标域下的Cookie等身份凭证,攻击者通过构造恶意请求,诱导已登录用户的浏览器执行非预期的操作,如转账或修改数据。这种攻击利用了Web身份认证机制中Cookie的隐式授权特性,对用户数据和业务安全构成严重威胁。从技术价值看,防御CSRF是构建可信Web应用的基石,能有效防止身份冒用和未授权操作。典型的应用场景包括金融交易、社交互动、后台管理等涉及状态变更的Web功能。本文聚焦于

weixin_30617695的博客 404

【java】警惕!那个让用户“被动”转账的漏洞:深入揭秘CSRF与Java防护策略

警惕!那个让用户“被动”转账的漏洞:深入揭秘CSRF与Java防护策略

qq_42320804的博客 1013

从Pikachu靶场通关到实战:深入理解CSRF漏洞攻防与防御方案

跨站请求伪造(CSRF)是一种利用Web应用对用户浏览器信任机制的安全漏洞。其核心原理在于,攻击者可以诱使已登录用户在不知情的情况下,向目标网站发送恶意请求,因为浏览器会自动携带用户的会话凭证(如Cookie)。这种攻击利用了HTTP协议中同源策略的例外,针对执行状态变更的请求(如POST、PUT),危害性极高。在Web安全领域,CSRF与SQL注入、XSS等并列为常见的高危漏洞,其技术价值在于揭示了基于隐式信任模型的缺陷。典型的应用场景包括用户信息篡改、资金转账、权限提升等关键业务操作。为了有效防御,业界

weixin_30387799的博客 425
上一篇: style、currentStyle、getComputedStyle()区别
下一篇: [JQuery] find()、has()、filter()、siblings()
澪月
博客等级 码龄11年 29粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值