X-Frame-Options
HTTP 響應(yīng)頭是用來給瀏覽器指示允許一個頁面是否可以在 <frame>
, <iframe>
, <embed>
或者 <object>
中展現(xiàn)的標記仰禀。站點可以通過確保網(wǎng)站沒有被嵌入到別人的站點里面牺蹄,從而避免 Clickjacking 攻擊张遭。通過 Nginx 的作為正向代理,我們可以繞過 X-Frame-Options
限制成功的將第三方網(wǎng)頁嵌入到自己的頁面中昧狮。
X-Frame-Options
X-Frame-Options
響應(yīng)頭有三個可能的值:
- deny:表示該頁面不允許在 frame 中展示,即便是在相同域名的頁面中嵌套也不允許饥悴。
- sameorigin: 表示該頁面可以在相同域名頁面的 frame 中展示蒿秦。
- allow-from uri: 表示該頁面可以在指定來源的 frame 中展示烤镐。
在 Chrome 嘗試加載 frame 的內(nèi)容時,如果 X-Frame-Options
響應(yīng)頭設(shè)置為禁止訪問棍鳖,那么 Chrome 會在控制臺中顯示如下錯誤职车。
WX20191104-164740
通過 Nginx 正向代理訪問
所謂正向代理就是當用戶想獲取某一臺服務(wù)器上的數(shù)據(jù)而又無法直接訪問服務(wù)器獲取時,通過一臺代理服務(wù)器“幫”他從目標服務(wù)器上取到數(shù)據(jù)鹊杖。
在代理服務(wù)器上安裝 nginx 并添加如下配置:
server {
listen 8080;
location / {
proxy_hide_header X-Frame-Options;
proxy_pass http://{target};
}
}
這也當請求 http://{proxy_server}:8080
時悴灵,nginx 會做代理轉(zhuǎn)發(fā)到 http://{target}
,同時在返回結(jié)果的時候會隱藏掉 X-Frame-Options
相應(yīng)頭骂蓖,這樣我們自己的網(wǎng)頁就能正常通過 iFrame 載入目標網(wǎng)頁了积瞒。