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

LabVIEW事件结构避坑指南:为什么你的‘确定按钮’事件有时会失灵?

本文深入探讨了LabVIEW事件结构中'确定按钮'事件失灵的常见原因及解决方案。从事件队列机制到事件类型选择,详细分析了事件丢失的五大原因,包括事件处理耗时过长、事件类型选择不当等,并提供了优化登录界面案例的实用建议。掌握这些技巧可显著提升LabVIEW用户界面的响应可靠性。

weixin_42548888的博客 355

CSRF:攻击与防御

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

琦彦 670

Windows 10/11 下用 Docker 一键部署 CVAT 标注工具(附 WSL2 配置指南)

本文详细指导如何在Windows 10/11系统上,通过配置WSL2和Docker Desktop,实现CVAT标注工具的一键部署。内容涵盖从环境准备、Docker安装、CVAT服务启动到性能优化与安全配置的全流程,为计算机视觉开发者提供稳定高效的本地标注平台解决方案。

weixin_28839601的博客 463

群晖NAS从入门到精通的所有帖子汇总,只要这一篇就够了

本站陆陆续续的转载、原创帖子也有十几二十篇了,从不同的角度对群晖NAS的各种骚操作都有深入的讲解,虽然很多文章都不是讲的很深入,但是针对小白入门已经是足够了,希望对小白来说是一个入门,群晖NAS的大佬们勿喷,哪里写的不对的,请随时留言西安SEO优化站长一定在第一时间纠正修改。

西安SEO优化网站资源 8万+

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

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

Fly_鹏程万里 1359

【NTN 卫星通信】使用地面网络和卫星网络接入的终端应用场景

卫星接入有广覆盖的特点, 可以改善地面接入网覆盖或无线条件差的地区(例如多径干扰)的服务可用性。对于高速移动中需要实时业务的终端,如IMS语音/视频会议,可以通过地面接入和卫星接入同时实现与5G系统的双连接,在地面接入网不可用的情况下获得连续可靠的业务。

weixin_43603524的博客 2558

CSRF

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

dasfawef1255612的博客 114

编译hive-3.1.3(3.0.0)和编译tez-0.10.2适配hadoop-3.3.4以及hadoop-3.2.2(附安装包)

编译hive-3.1.3(3.0.0)和编译tez-0.10.2适配hadoop-3.3.4以及hadoop-3.2.2(附安装包)

2301_77356579的博客 2599

【附代码】SSVEP解码算法 - 扩展典型相关分析(eCCA)

本文主要对SSVEP解码算法-eCCA进行复现和测试。本文提供程序的所有代码,只要在Matlab上即可运行。读者可以根据程序自主调整,方便学习以及初学者更好地了解SSVEP的经典算法。

计算机小白 1335

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

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

华为云官方博客 5207

基于LSTM GRU RNN的交通流量预测-完整数据代码

基于LSTM GRU RNN的交通流量预测-完整数据代码

922

spring-security(记住密码,CSRF)

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

2302_79087378的博客 909

小红书图文笔记图像批量爬取:Python爬虫实战与反反爬策略全解析

在当今社交媒体盛行的时代,小红书作为中国领先的生活方式分享平台,积累了海量的优质图文内容。对于数据分析师、市场研究人员或内容创作者来说,能够高效获取这些数据具有重要意义。本文将详细介绍如何使用Python构建一个高效、稳定的小红书图文笔记图像批量爬取工具,涵盖最新技术栈和反反爬策略。本文详细介绍了如何使用Python构建一个高效、稳定的小红书图文笔记图像批量爬取系统。通过结合Playwright、aiohttp等现代工具,实现了从列表页采集到图片下载的完整流程。

2201_76125261的博客 2364

计算机控制技术及应用

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

一文读懂CSRF攻击与防御

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

java爱好者 388

蓝牙模块HM-10手册

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

CSRF、XSS 科普与防御

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

edwardwzw的博客 3059

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

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、付费专栏及课程。

余额充值