資料載入中

胡言亂語

PHP如何設定HTTP安全標頭?

PHP該如何將以下安全標頭添加到網站?

X-Frame-Options  防止點擊劫持攻擊
X-XSS-Protection  減輕跨站腳本(XSS)攻擊
X-Content-Type-Options  防止可能的網絡釣魚或XSS攻擊

以下透過2種方式添加:
(1)在.htaccess文件中加入
<IfModule mod_headers.c>
Header set X-Frame-Options "DENY"
Header set X-XSS-Protection "1; mode=block"
Header set X-Content-Type-Options "nosniff"
</IfModule>

這方式是一勞永逸。
(2)直接添加在PHP檔案裡:
header('X-Frame-Options: DENY');
header('X-XSS-Protection: 1; mode=block');
header('X-Content-Type-Options: nosniff');

麻煩的是在每支PHP的表頭都得添加,所以還是使用.htaccess設定或是直接設定在Apache裡比較省工。

另外,以上方式選擇一種設定即可,重複設定似乎反而會失效。

PHP如何設定HTTP安全標頭
若不知道自己的安全標頭不知道是否有設定正確,可以使用Mozilla Observatory做測試:Mozilla Observatory

以上紀錄~
 

  • PHP網站安全標頭添加方法
  • 防止點擊劫持攻擊的安全措施
  • 減輕跨站腳本攻擊的標頭設定
  • 使用.htaccess文件添加安全標頭
  • Mozilla Observatory測試網站安全性
https://innstory.com/story-PHP如何設定HTTP安全標頭-2701

上一篇
 設定Postfix使用SMTPServer當作relay主機

下一篇
PHP如何移除xpoweredby資訊 

發表留言

作者簡介

離不開電腦的宅男


推薦閱讀

作者其他相關類別故事

PDO bindParam 和 bindValue 差別在哪裡

PDO bindParam …

Mark Chang 6 年又 54 天 2K

首先 bindParam 是綁定變數、bindValue  是綁定值。 以下範例: 執行正常。 輸...

點選檔案下載卻直接執行開啟

點選檔案下載卻直接執行開啟

Mark Chang 5 年又 89 天 1.6K

遇到一個情況。 使用者開啟瀏覽器點選某個連結檔案時,不會執行下載而是直接開啟檔案。 原本如果只是圖片...

PostgreSQL對應MySQL注意事項,時間與日期格式是最容易踩雷的地方之一

PostgreSQL對應My…

Mark Chang 2026-06-23 下午 4 點 159

從 MySQL 轉到 PostgreSQL(或雙軌並行)時,時間與日期格式是最容易踩雷的地方之一。雖...