Java搜索引用程序
我正在使用Struts和Java。问题是我有一个带有一些结果的页面。用户可以单击项目并对其进行编辑。我希望编辑后的用户能够返回到结果。Back没有损坏,但如果他提交表单进行更新,他将不得不单击Back 2次,我认为这可能会有问题 我尝试了Java搜索引用程序,java,jsp,struts,Java,Jsp,Struts,我正在使用Struts和Java。问题是我有一个带有一些结果的页面。用户可以单击项目并对其进行编辑。我希望编辑后的用户能够返回到结果。Back没有损坏,但如果他提交表单进行更新,他将不得不单击Back 2次,我认为这可能会有问题 我尝试了标题(“Referer”),但在Internet Explorer中不起作用 我正在尝试实施一个解决方案。有什么想法吗?我的想法是保存url并在该url的ID周围移动。当我想返回时,从ID获取url。将其存储在会话中不是一个解决方案,因为用户可能打开了多个窗口。
标题(“Referer”)
,但在Internet Explorer中不起作用
我正在尝试实施一个解决方案。有什么想法吗?我的想法是保存url并在该url的ID周围移动。当我想返回时,从ID获取url。将其存储在会话中不是一个解决方案,因为用户可能打开了多个窗口。最好的方法是将其作为请求参数传递。在编辑链接或按钮上,只需将当前URL作为请求参数传递。下面是一个带有链接的示例:
<a href="/login?from=${pageContext.request.requestURI}">edit</a>
最好的方法是将其作为请求参数传递。在编辑链接或按钮上,只需将当前URL作为请求参数传递。下面是一个带有链接的示例:
<a href="/login?from=${pageContext.request.requestURI}">edit</a>
将URL作为请求参数传递可能会产生安全问题。Powerlord是正确的,用户可以更改referer头。这将允许用户访问页面,这是他们无论如何都可以做的事情。更严重的是,通过跟踪请求参数中的URL,攻击者可以将用户发送到攻击者选择的页面,看起来该页面是您的应用程序推荐的。因此,BalusC的答案可以启用跨站点请求伪造。将URL作为请求参数传递可能会产生安全问题。Powerlord是正确的,用户可以更改referer头。这将允许用户访问页面,这是他们无论如何都可以做的事情。更严重的是,通过跟踪请求参数中的URL,攻击者可以将用户发送到攻击者选择的页面,看起来该页面是您的应用程序推荐的。因此,来自BALUCC的答案可以启用跨站点请求伪造。
HTTP\u REFERER
是一个用户定义的头。它可能是正确的,但用户可能已经更改了它。这在Firefox中很容易做到,Firefox有Refcontrol插件:编辑项目时,你能从可用的对象重建结果URI吗?HTTP\u REFERER
是一个用户定义的标题。它可能是正确的,但用户可能已经更改了它。这在Firefox中是很容易做到的,Firefox有一个Refcontrol插件:在编辑项目时,你能从可用的对象重建结果URI吗?看起来还可以……但是我担心如果查询字符串太大的话!看起来还可以…但是我担心如果查询字符串太大!
<input type="hidden" name="from" value="${param.from}">
response.sendRedirect(request.getParameter("from"));