2023年12月8日 星期五

nginx X-Frame-Options & proxy

前言
我都覺得我快變成維運了,全端工程師已經夠可憐了,最近寫的文章全部都是為運相關....

內文
好好一個案子說“弱掃”掃描不過有安全性問題

其中一條說
Missing Anti-clickjacking Header: 在HTTP Header加入X-Frame-Options: DENY或SAMEORIGIN
然後附上一段參考網址
https://a42033.gitbooks.io/system/content/security/user/X_Frame_Options.html

我去研究一下發現這是關於自己往也能否被iframe嵌入的設定,理論上當然要不行,或者同域名才可以
所以我參考這個網頁

因為我伺服器是用nginx,所以我就只打關鍵字拉
在default.conf裡面加上
add_header X-Frame-Options DENY;
這樣就搞定了。


至於還有一個比較大條的,安全性等級比較高的問題寫到

Cloud Metadata Potentially Exposed
參考網址
https://www.nginx.com/blog/trust-no-one-perils-of-trusting-user-input/

老實說他只舉出錯誤的寫法,沒有指出正確該怎麼寫.....所以咧~~
最後我看留言,有一個可憐的老哥跟我有一樣的問題:所以呢,是要怎麼解決!!然後他給出他修改的範例,請作者指教。好在作者還真的有回應他,並且是正向的。(媽的他寫對就說一句“對”很難嗎,我看完google translate文鄒鄒落落長,都不知道你在說什麼)

簡單結論一下,文章指出如果直接寫
proxy_pass http://$host;
這樣會有相對的風險,官方“不建議”這樣寫,所以比較好的寫法是透過upstream去指定host
upstream a_node_app {
server 127.0.0.1:3011;
}
我記得這是用來做low balance的,所以就是我指定到upstream的一個host,再由他幫忙轉到我要的位址,這樣就可以了。

後記
文章給的另一個解法是可以架防火牆,至於怎麼用....等我哪天真的轉維運再告訴你

沒有留言:

張貼留言