本文介紹nginx分別通過http和server設置 X-Frame-Options
,防止網站被別人用iframe嵌入使用。需要說明的是,只需用其中一個方法即可,在http配置代碼塊或server配置代碼塊裏設置。
在http配置裏設置X-Frame-Options
打開nginx.conf
,文件位置一般在安裝目錄 /usr/local/nginx/conf
裏。
然後在http配置代碼塊裏某一行添加如下語句即可:
- add_header X-Frame-Options SAMEORIGIN;
如圖所示:
在http配置裏設置X-Frame-Options
添加後,重啓nginx,命令是:
- /usr/local/nginx/sbin/nginx -s reload
即可生效。
在server配置裏設置X-Frame-Options
在server配置裏設置X-Frame-Options跟在http配置裏設置X-Frame-Options方法是一樣的,同樣是在server的配置代碼塊裏添加如下語句即可:
- add_header X-Frame-Options SAMEORIGIN;
如圖所示:
在server配置裏設置X-Frame-Options
添加後,重啓nginx,命令是:
- /usr/local/nginx/sbin/nginx -s reload
即可生效。
知識擴展
X-Frame-Options 響應頭
X-Frame-Options HTTP 響應頭是用來給瀏覽器指示允許一個頁面可否在 <frame>, <iframe> 或者 <object> 中展現的標記。網站可以使用此功能,來確保自己網站的內容沒有被嵌到別人的網站中去,也從而避免了點擊劫持 (clickjacking) 的攻擊。
X-Frame-Options 有三個值:
DENY
表示該頁面不允許在 frame 中展示,即便是在相同域名的頁面中嵌套也不允許。
SAMEORIGIN
表示該頁面可以在相同域名頁面的 frame 中展示。
ALLOW-FROM uri
表示該頁面可以在指定來源的 frame 中展示。
換一句話說,如果設置爲 DENY,不光在別人的網站 frame 嵌入時會無法加載,在同域名頁面中同樣會無法加載。另一方面,如果設置爲 SAMEORIGIN,那麼頁面就可以在同域名頁面的 frame 中嵌套。