如何在 Spring Security 中禁用“X-Frame-Options”响应标头?

新手上路,请多包涵

我的 jsp 上有 CKeditor,每当我上传内容时,都会弹出以下错误:

  Refused to display 'http://localhost:8080/xxx/xxx/upload-image?CKEditor=text&CKEditorFuncNum=1&langCode=ru' in a frame because it set 'X-Frame-Options' to 'DENY'.

我试过删除 Spring Security,一切都很顺利。如何在 spring security xml 文件中禁用它?我应该在 <http> 标签之间写什么

原文由 Bravo 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.4k
2 个回答

默认情况下 X-Frame-Options 设置为拒绝,以防止 点击劫持 攻击。要覆盖它,您可以将以下内容添加到您的 spring 安全配置中

<http>
    <headers>
        <frame-options policy="SAMEORIGIN"/>
    </headers>
</http>

以下是政策的可用选项

  • DENY - 是默认值。有了这个,页面就不能显示在框架中,不管网站试图这样做。
  • SAMEORIGIN - 我假设这就是您正在寻找的内容,以便页面将(并且可以)显示在与页面本身相同来源的框架中
  • ALLOW-FROM - 允许您指定原点,页面可以在该原点中显示在框架中。

有关详细信息,请查看 此处

在这里 检查如何使用 XML 或 Java 配置来配置标头。

请注意,您可能还需要根据需要指定适当的 strategy

原文由 vtor 发布,翻译遵循 CC BY-SA 3.0 许可协议

如果您使用的是 Java 配置而不是 XML 配置,请将其放入您的 WebSecurityConfigurerAdapter.configure(HttpSecurity http) 方法中:

 http.headers().frameOptions().disable();

原文由 fivedogit 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题