首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >打开新选项卡时使用JSF受保护视图时出错

打开新选项卡时使用JSF受保护视图时出错
EN

Stack Overflow用户
提问于 2018-08-15 23:19:32
回答 1查看 444关注 0票数 2

我已经设置了我的web应用程序,通过在faces-config,protected views中列出单独的页面来防止CSRF攻击。

这在本地运行时效果很好,但在部署到服务器后,打开页面链接时最终会出现以下错误:

代码语言:javascript
复制
javax.faces.application.ProtectedViewException: JSF1099: Referer [sic] header value http://[redacted]/finance/commitmentregister/search.xhtml?javax.faces.Token=1534344211116 does not appear to be a protected view. Preventing display of viewId /finance/commitmentregister/view.xhtml
at com.sun.faces.lifecycle.RestoreViewPhase.maybeTakeProtectedViewAction(Unknown Source)
at com.sun.faces.lifecycle.RestoreViewPhase.execute(Unknown Source)
at com.sun.faces.lifecycle.Phase.doPhase(Unknown Source)
at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(Unknown Source)
at com.sun.faces.lifecycle.LifecycleImpl.execute(Unknown Source)

我们在本地和测试服务器上运行Apache Tomcat7。

编辑:

我注意到在链接上生成的url如下所示:

http://.../page.xhtml?token=123&p=4

其中javax.faces.Token是CSRF令牌,p是发送的url参数。

错误消息显示了带有令牌但没有p的url,就像它期望带有令牌的url是faces-config中列出的受保护页面url一样。

也就是说,faces-config具有:

代码语言:javascript
复制
<protected-views>
  <url-pattern>/page.xhtml</url-pattern>
</protected-views>

但它期望的是page.xhtml?token=123

进一步编辑:

我们刚刚注意到,只有在新选项卡中打开页面时,才会发生此错误。带有用target="_blank“属性生成的链接。将url复制到剪贴板中并将其粘贴到新的选项卡地址栏中可正确加载页面。

EN

回答 1

Stack Overflow用户

发布于 2018-08-16 23:53:23

注意到它只在新的选项卡上崩溃,这给了我更多的信息来研究这个问题。

将这个添加到链接中可以解决这个问题:

代码语言:javascript
复制
rel="noopener noreferrer"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51861619

复制
相关文章

相似问题

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