首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Struts 2 中的 HTTP Referer 标头

uts 2 中的 HTTP Referer 标头是指在 HTTP 请求中,包含了发起请求的页面的 URL 地址。这个标头可以用于跟踪用户在网站上的行为,以及防止跨站请求伪造(CSRF)等安全问题。

在 Struts 2 中,可以使用 ServletActionContext 类来获取 HTTP Referer 标头的值,例如:

代码语言:java
复制
String referer = ServletActionContext.getRequest().getHeader("Referer");

然后,可以将这个值存储在 Struts 2 的 Action 类中,或者将其传递给视图层进行处理。

需要注意的是,HTTP Referer 标头的值可以被伪造或删除,因此不能完全依赖这个标头来进行安全验证。如果需要进行安全验证,应该使用其他方法,例如 CSRF 令牌或验证码等。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

通过 HTTP XSS

但不幸是,一旦攻击者无法让受害者在实际 XSS 攻击中编辑他/她自己 HTTP ,那么只有在攻击者有效负载以某种方式存储时才能利用这些场景。...我们可能想到第一种情况是典型情况:我们可以控制 HTTP 头中一些信息存储在数据库,稍后在同一页面、应用程序其他任何地方甚至是另一个不可访问系统检索攻击者(盲 XSS)。...\n”; 正如我们在下面看到,在带有 -i 标志命令行中使用 curl,它会向我们显示响应 HTTP 以及包含我们请求 JSON。...由于我们在这篇博客中使用 WAF 提供最后一个“x-sucuri-cache”,我们需要在 URL 添加一些内容以避免缓存,因为该值是“HIT”,这意味着它即将到来来自 WAF 缓存。...但仅对我们而言,因为我们通过终端发送该。它不会出现在浏览器、其他人甚至我们自己请求。 发出了另一个请求(在“日期”检查时间),但似乎没有什么区别。

2.1K20
  • C++ 随机系列1

    这是我参与「掘金日新计划 · 12 月更文挑战」第1天,点击查看活动详情 此引入了随机数生成功能。该库允许使用生成器和分布组合生成随机数。 生成器:生成均匀分布数字对象。...它在区间 [0, (2^w)-1] 内生成高质量无符号整数随机数。 其中“w”是字大小:状态序列每个字位数。 operator(): 它生成随机数。...max: 它返回成员operator()返回最大值,对于mersenne_twister_engine为 2w-1(其中 w 是字大小)。...max:它返回成员operator()返回最大值,对于 subtract_with_carry_engine 为 (2^w)-1,其中 'w' 是单词大小。...四、发动机适配器 1. discard_block_engine: 它是一个引擎适配器类模板,它通过仅使用其生成序列每个“p”元素块“r”元素来适应伪随机数生成器引擎类型,丢弃其余元素。

    1.3K10

    对 Google 说不 - 本站已启用屏蔽 FLoC HTTP

    什么是 FLoC FLoC 通过获取浏览器浏览记录将用户加入 “相似” 用户分组内,每个分组拥有对应 FLoC ID。...通过这项技术可以实现猜测和收集用户喜好等隐私数据,如果你曾经看过自己 Google 账户 Google 广告设置,其中就可以看到你年龄、喜好、关注、房产状况等等信息,这些信息主要由 Google...为什么要抵制 FLoC FLoC 被拒绝原因正是目前第三方 Cookie 逐渐消失原因,我们需要是第三方 Cookie 消失,而不是出现一个类似 (甚至在用于追踪情况下功能更加完善) 替代品...EFF 这篇博文详细解释了部分细节,如果需要可以尝试阅读一下。...uBlock 等工具进行屏蔽 CloudFlare Browser Insights:CloudFlare 提供网页性能监测工具,不会收集用户特定信息 可以做事 为自己站点添加相关拒绝

    86310

    HTTP信息参数Etag

    服务器如果是集群,不同服务器返回 Http Header Etag 参数不一样。...下面开始介绍 Etag:        Etag在HTTP1.1有介绍,主要作用就是在(css file, image, javascript file)文件后面添加一个唯一参数(相当于查询参数字符串...(包括Etag,例如"2e681a-6-5d044840"),http头状态码为为200....同一个用户第二次这个文件请求 客户端在一次发起HTTP GET请求一个文件,注意这个时候客户端同时发送一个If-None-Match,这个头中会包括上次这个文件Etag(例如"2e681a- 6...Size None 如果一个文档是基于文件,则不在应答包含任何ETag 在大型多WEB集群时,使用ETag时有问题,所以有人建议使用WEB集群时不要使用ETag,其实很好解决, 因为多服务器时

    2.1K40

    struts2 Actionsupport 作用

    struts2 Actionsupport 作用 Action 跟 Actionsupport 区别 当我们在写action时候,可以实现Action接口,也可以继承Actionsupport...ActionSupport类作用 struts2不要求我们自己设计action类继承任何struts基类或struts接口,但是我们为了方便实现我们自己action,大多数情况下都会继承...com.opensymphony.xwork2.ActionSupport类,并重写此类里public String execute() throws Exception方法。...因为此类实现了很多实用借口,提供了很多默认方法,这些默认方法包括国际化信息方法、默认处理用户请求方法等,这样可以大大简化Acion开发。...Struts2通常直接使用Action来封装HTTP请求参数,因此,Action类里还应该包含与请求参数对应属性,并且为属性提供对应getter和setter方法。

    28830

    struts2constant配置

    DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http:...注意:如果需要使用cos或者pell文件上传方式,则应该将对应JAR文件复制到Web应用.例如,使用cos上传方式,则需要自己下载cos框架JAR文件,并将该文件放在WEB-INF/lib路径下...--该属性指定需要Struts 2处理请求后缀,该属性默认值是action,即所有匹配*.action请求都由Struts 2处理.如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号(,)隔开...--该属性指定Struts 2框架默认加载配置文件,如果需要指定默认加载多个配置文件,则多个配置文件文件名之间以英文逗号(,)隔开.该属性默认值为struts-default.xml,struts-plugin.xml...--包括哪些jar包action。逗号分割字符串。> <constant name="<em>struts</em>.convention.action.includeJars" value=".*?

    89010

    Struts2:值栈(ValueStack)、值栈Action实例、Struts2其他命名对象 小结

    值栈(ValueStack)   Struts2将OGNL上下文设置为Struts2ActionContext(内部使用仍然是OgnlContext),并将值栈设为OGNL根对象。   ...Struts2提供了一个特殊OGNLPropertyAccessor,它可以自动查找值栈内所有对象(从栈顶到栈底),直接找到一个具有你所查找属性对象,找不到,就报错。...正如你所见,访问值栈对象属性或方法,无须指明对象,也不用“#”,就好像值栈对象都是OGNL上下文中根对象一样。这就是Struts2在OGNL基础上做出改进。...值栈Action实例   Struts2框架总是把Action实例放在栈顶。...Struts2其他命名对象   Struts2还提供了一些命名对象,这些对象没有保存在值栈,而是保存在ActionContext,因此访问这些对象需要使用“#”标记。

    99910

    Struts2 值栈理解

    要获得 这些参数值,我们要做唯一一件事就是在Action类声明与参数同名属性,在Struts 2调用Action类Action方法(默认是execute方法)之前,就会为相应Action属性赋值...在处理完上述工作后,Struts 2就会调用拦截器链拦截器,当调用完所有的拦截器后,最后会调用Action类Action方法,在调用Action方法之前,会将 ValueStack对象顶层节点中属性值赋给...也就是说,在Struts 2调用拦截器过程,可以改变ValueStack对象属性值,当改变某个属性值后,Action类相应属性值就会变成在拦截器中最后改变该属性 这个值。    ...要获得 这些参数值,我们要做唯一一件事就是在Action类声明与参数同名属性,在Struts 2调用Action类Action方法(默认是execute方法)之前,就会为相应Action属性赋值...也就是说,在Struts 2调用拦截器过程,可以改变ValueStack对象属性值,当改变某个属性值后,Action类相应属性值就会变成在拦截器中最后改变该属性 这个值。

    64130

    聊聊Servlet、Struts1、Struts2以及SpringMvc线程安全

    前言 很多初学者,甚至是工作1-3年小伙伴们都可能弄不明白?servlet Struts1 Struts2 springmvc 哪些是单例,哪些是多例,哪些是线程安全?.../** * 模拟用户AB在同时执行不同动作 * 先执行 http://localhost:8080/concurrent?...Struts2 struts2使用是actionContext,都是使用里面的实例变量,让struts2自动匹配成对象。...每次处理一个请求,struts2就会实例化一个对象,这样就不会有线程安全问题了。 需要注意是,如果struts2+spring来管理注入时候,不要把Action设置成单例,否则会出问题。...当然现在很少有项目使用struts2了。 SpringMVC SpringMVCcontroller默认是单例模式,所以也会有多线程并发问题。

    90360

    聊聊Servlet、Struts1、Struts2以及SpringMvc线程安全

    servlet Struts1 Struts2 springmvc 哪些是单例,哪些是多例,哪些是线程安全? 在谈这个话题之前,我们先了解一下Java相关变量类型以及内存模型JMM。.../** * 模拟用户AB在同时执行不同动作 * 先执行 http://localhost:8080/concurrent?...Struts2 struts2使用是actionContext,都是使用里面的实例变量,让struts2自动匹配成对象。...每次处理一个请求,struts2就会实例化一个对象,这样就不会有线程安全问题了。 需要注意是,如果struts2+spring来管理注入时候,不要把Action设置成单例,否则会出问题。...当然现在很少有项目使用struts2了。 SpringMVC SpringMVCcontroller默认是单例模式,所以也会有多线程并发问题。

    1.2K140

    聊聊Servlet、Struts1、Struts2以及SpringMvc线程安全

    前言 很多初学者,甚至是工作1-3年小伙伴们都可能弄不明白?servlet Struts1 Struts2 springmvc 哪些是单例,哪些是多例,哪些是线程安全?.../** * 模拟用户AB在同时执行不同动作 * 先执行 http://localhost:8080/concurrent?...Struts2 struts2使用是actionContext,都是使用里面的实例变量,让struts2自动匹配成对象。...每次处理一个请求,struts2就会实例化一个对象,这样就不会有线程安全问题了。 需要注意是,如果struts2+spring来管理注入时候,不要把Action设置成单例,否则会出问题。...当然现在很少有项目使用struts2了。 SpringMVC SpringMVCcontroller默认是单例模式,所以也会有多线程并发问题。

    49820

    浅析Struts2OGNL和ValueStack

    要获得这些参数值,我们要做唯一一件事就是在Action类声明与参数同名属性,在Struts2调用Action类Action方法(默认是execute方法)之前,就会为相应Action属性赋值。...Struts2某些拦截器正是通过ValueStack类setValue方法来修改Action类属性值。如params拦截器用于将请求参数值映射到相对应Action类属性值。...Struts2对OGNL上下文概念又做了进一步扩充,在struts2,OGNL上下文通常如下所示: |--request |--application context map---|--OgnlValueStack...Struts2框架把我们ActionContext设置为OGNL 上下文环境,凡是此环境值我们都应该通过#key方式来进行访问,所以request,session等需要加前缀,又因为Struts2...#this.gender == 'male'} 设值计算 Struts2使用OGNL进行设值计算,就是指View层传递数据到Control层,并且能够设置到相应Java对象

    80180
    领券