首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java查找referer

Java查找referer
EN

Stack Overflow用户
提问于 2010-04-09 22:44:47
回答 2查看 771关注 0票数 1

我使用的是Struts和Java。问题是我有一个包含一些结果的页面。用户可以单击项目并对其进行编辑。我希望在编辑后,用户能够返回到结果。Back没有损坏,但如果他提交表单进行更新,他将不得不点击back 2次,我认为这可能会有问题。

我试过header("Referer"),但在I浏览器中不起作用。

我正在尝试实现一个解决方案。有什么想法吗?我的想法是保存url并移动该url的ID。当我想要返回时,从ID中获取url。将它存储在会话中并不是一个解决方案,因为用户可能已经打开了多个窗口。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-04-09 22:58:09

最好的方法是将其作为请求参数传递。在编辑链接或按钮上,只需将当前URL作为请求参数传递即可。下面是一个带有链接的示例:

代码语言:javascript
复制
<a href="/login?from=${pageContext.request.requestURI}">edit</a>

或者,如果是提交表单的按钮,则将其作为隐藏输入值传递到同一表单中:

代码语言:javascript
复制
<input type="hidden" name="from" value="${pageContext.request.requestURI}">

在包含编辑表单的页面中,将其作为表单的隐藏输入值传递给后续请求:

代码语言:javascript
复制
<input type="hidden" name="from" value="${param.from}">

在action方法中,只需在完成操作后重定向到该URL。因为我不做Struts,所以我不能给出一个详细的Struts示例,但这里是如何使用“普通”Servlet实现的,您必须能够将其移植到Struts方法:

代码语言:javascript
复制
response.sendRedirect(request.getParameter("from"));
票数 2
EN

Stack Overflow用户

发布于 2012-11-20 17:58:19

将URL作为请求参数传递可能会产生安全问题。Powerlord说得对,用户可以修改referrer的标题。这将允许用户访问页面,这是他们无论如何都可以做的事情。更严重的是,跟随请求参数中的URL允许攻击者将用户发送到攻击者选择的页面,看起来该页面是您的应用程序推荐的页面。因此,来自BalusC的答案可以启用跨站点请求伪造。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2608357

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档