【发布时间】:2017-02-15 13:33:54
【问题描述】:
我的应用程序已经部署在 JBOSS AS 7 上,Apache Web Server 在中间,公共 IP 可以访问应用程序。应用程序基于 Java/Spring/JSF/Hibernate。 为了避免点击劫持,我在我的应用程序以及 Appache 服务器的 httpd.conf 中将 X-Frame-Option 设置为 SAMEORIGIN。在几个模块中,很少有弹出窗口/新窗口被打开来显示数据。在尝试来自 App Server 的那些时,这些工作正常。但在另一种情况下,如果从公共 IP 尝试,弹出窗口将变为空白。在网络调试中,我发现以下错误。
123456.jsf:1 加载“https://xx.xx.xx.xx/xxx/xxxx/123456.jsf?PA1=16208&PA2=A”时遇到多个“X-Frame-Options”标头具有冲突的值(“SAMEORIGIN,DENY”)。回退到“拒绝”。 123456.jsf:1 拒绝在框架中显示“https://xx.xx.xx.xx/xxx/xxxx/123456.jsf?PA1=16208&PA2=A”,因为它将“X-Frame-Options”设置为“SAMEORIGIN,DENY”。
我在 Apache 服务器中搜索了 Application 和 conf 文件,但没有找到 X-Frame-Options 设置为 DENY 的位置。
在尝试弹出页面时发现以下值在响应标头中: X 帧选项:“SAMEORIGIN,拒绝”。欢迎提供帮助。
【问题讨论】:
-
欢迎来到 security.SE。这似乎不是一个安全问题,而是一个编程问题(在某个地方,您的应用程序正在设置一个您不想要的标头,并且您想知道这是在哪里发生的)。该问题可能很快就会迁移到stackoverflow(您无需做任何事情,这只是一个参考)。
-
经过几分钟的研究,我从快照中得出一个点:X-Frame-Options:"SAMEORIGIN, SAMEORIGIN, DENY" 意思是,值是从每一层即Applayer设置的, WebLayer,以及配置了公网IP的LB安全层。任何人都可以确认,是否将值从每一层设置到 X-Frame-Options 以及以什么顺序。
-
团队已修改负载均衡器级别的安全性,以将 X-Frame-Options 的安全策略从默认 DENY 更改为 SAMEORIGIN ,现在我可以访问该页面。谢谢大家。