網站首頁 編程語言 正文
Tomcat部署iframe出現Refused to display ‘url‘ in a frame because it set ‘X-Frame-Options‘ to ‘deny‘無法訪問問題
作者:清如許. 更新時間: 2022-06-08 編程語言在Linux下部署帆軟報表項目的時候,使用Tomcat服務器獨立部署,部署完成之后發現iframe嵌入的頁面無法打開訪問,報錯Refused to display ‘url’ in a frame because it set ‘X-Frame-Options’ to 'deny’
使用iframe嵌入網頁,瀏覽器報錯:Refused to display ‘url’ in a frame because it set ‘X-Frame-Options’ to ‘deny’。
這是SpringSecurity 防止惡意注入,所以設置了 X-Frame-Options 為deny,網上看到是 加入 httpSecurity.headers().frameOptions().disable();
參考地址:https://www.jianshu.com/p/fd757a0dbdb4
但是我使用的是Tomcat部署,在tomcat 點擊劫持:X-Frame-Options未配置。
詳細描述
點擊劫持(ClickJacking)是一種視覺上的欺騙手段。攻擊者使用一個透明的、不可見的iframe,覆蓋在一個網頁上,然后誘使用戶在該網頁上進行操作,此時用戶將在不知情的情況下點擊透明的iframe頁面。通過調整iframe頁面的位置,可以誘使用戶恰好點擊在iframe頁面的一些功能性按鈕上。
HTTP 響應頭信息中的X-Frame-Options,可以指示瀏覽器是否應該加載一個 iframe 中的頁面。如果服務器響應頭信息中沒有X-Frame-Options,則該網站存在ClickJacking攻擊風險。網站可以通過設置 X-Frame-Options 阻止站點內的頁面被其他頁面嵌入從而防止點擊劫持。
解決辦法
修改web服務器配置,添加X-Frame-Options響應頭。賦值有如下三種:
- 1、DENY:不能被嵌入到任何iframe或者frame中。
- 2、SAMEORIGIN:頁面只能被本站頁面嵌入到iframe或者frame中。
- 3、ALLOW-FROM uri:只能被嵌入到指定域名的框架中。
在tomcat下的conf里的web.xml中增加以下過濾器
<filter>
<filter-name>httpHeaderSecurity</filter-name>
<filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
<init-param>
<param-name>antiClickJackingEnabled</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>antiClickJackingOption</param-name>
<param-value>SAMEORIGIN</param-value>
</init-param>
<async-supported>true</async-supported>
</filter>
<filter-mapping>
<filter-name>httpHeaderSecurity</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
經測試,配置之后問題已解決。
來自井底的蛙,也一直在仰望星辰大海啊~~
原文鏈接:https://blog.csdn.net/MacWx/article/details/124186789
相關推薦
- 2024-01-09 Certificate used to sign the license is not signed
- 2022-05-17 C++設計模式狀態模式(State)
- 2022-09-18 ASP.NET?Core實現文件上傳和下載_實用技巧
- 2022-12-01 docker-compose簡單使用方法詳解_docker
- 2022-07-01 淺談C語言中的sizeof()和strlen()的區別_C 語言
- 2022-02-17 解決 Uncaught SyntaxError: Unexpected token ‘<‘ 錯誤解決
- 2023-12-02 微信小程序隱藏頁面滾動條
- 2022-10-31 Python遍歷列表時刪除元素案例_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支