顯示具有 csp 標籤的文章。 顯示所有文章
顯示具有 csp 標籤的文章。 顯示所有文章

2025/06/26

本次的ZAP掃出以下的中風險







去年已經出現 本來想說去年應該已經解決了
但今年還是看到 可能是解決不完整

先在 apache 的 CSP 設定內加入以下二行

frame-ancestors 'self';
form-action 'self';

再來處理 style-src
先把 'unsafe-inline' 拿掉
接下來處理的方式有二種

如果在html檔裡直接定義 css 

要使用 hash 或 nonce
使用 nonce 是比較方便的做法

首先在 apache config 裡

style-src 這個定義加上 'nonce-12345678'

12345678 建議置換為亂碼

之後在 css 定義裡加上 nonce 定義
nonce的字串必須跟apahce config裡的相同

<style nonce="123456789" type="text/css">
</style>

修改 html內文 把原本直接定義的style改成先定義css再引用 

例如原本是

<a href="123456.exe" style="color:red;">123456</a>

要改成

<a href="123456.exe" class="red-text">123456</a><br>

同時在上方的css定義加入 red-text

<style nonce="sjdfhs6849" type="text/css">

.red-text {
  color: red;
  font-size: 21px;
}

</style>


另外不使用 hash 跟 nonce 的方法是 把css以獨立檔案定義後再引用

建立 style.css

檔案內容如下

.red-text {
  color: red;
  font-size: 21px;
}

接下來在 html 的head中引用

<head>
<link rel="stylesheet" href="style.css">
</head>

html內文的修正方法如上

2025/01/23

本次ZAP弱掃出現二個Medium


其實上次就有 不過這次要求連Medium都要處理
看來二個都是CSP的問題
之前改過一次版面會亂
這次再處理看看吧
要修改 /etc/apache2/apache2.conf 
加上以這這段

<IfModule mod_headers.c>

        Header set Content-Security-Policy "\
        default-src 'self';\
        img-src 'self' http://10.0.0.1 http://www.fcounter.net http://s11.flagcounter.com data:;\
        frame-src 'self' https://abc.com.tw https://www.youtube.com;\
        style-src 'self' 'unsafe-inline' https://cdn.jsdelivr.net https://cdnjs.cloudflare.com;\
        script-src 'self' https://cdn.jsdelivr.net https://code.jquery.com https://cdn.datatables.net 'unsafe-eval' 'unsafe-inline';\
        font-src 'self' https://cdnjs.cloudflare.com;\
        "

</IfModule>

內容需要依照自己的需求去修正
一個網頁一個網頁去看格式有沒亂掉 版面有沒正常
可以打開 browser 的開發人員工具
會顯示那些被CSP阻擋了
然後再補上去
需要補什麼問 https://www.perplexity.ai/ 比較快
把主控台上的訊息直接問就可以了

不難 但真的很花時間