Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java搜索引用程序_Java_Jsp_Struts - Fatal编程技术网

Java搜索引用程序

Java搜索引用程序,java,jsp,struts,Java,Jsp,Struts,我正在使用Struts和Java。问题是我有一个带有一些结果的页面。用户可以单击项目并对其进行编辑。我希望编辑后的用户能够返回到结果。Back没有损坏,但如果他提交表单进行更新,他将不得不单击Back 2次,我认为这可能会有问题 我尝试了标题(“Referer”),但在Internet Explorer中不起作用 我正在尝试实施一个解决方案。有什么想法吗?我的想法是保存url并在该url的ID周围移动。当我想返回时,从ID获取url。将其存储在会话中不是一个解决方案,因为用户可能打开了多个窗口。

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

我尝试了
标题(“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"));