[研究]ASP.NET WebForm 網站【檢查是否有 SRI(子資源完整性)支援】弱點處理
2025-07-04
環境:Visual Studio 2022 + ASP.NET + WebForm + Web Application + C# + SQL Server 2019 + SQL Server Management Studio (SSMS) 19
SRI(子資源完整性,Subresource Integrity)
********************************************************************************
ASP.NET WebForm 網站 HCL AppScan 10.18.0 報告【檢查是否有 SRI(子資源完整性)支援】弱點如下,如何處理?
ChatGPT 說:
感謝提供報告,以下是針對您 HCL AppScan 檢測出的【缺少 SRI(子資源完整性)】建議處理方式:
❶ 弱點說明
您的 ASP.NET WebForm 網站透過 <script> 載入第三方 JavaScript,例如:
<script src="https://www.googletagmanager.com/gtag/js?id=XXXXXXX"></script>
但未加上 integrity 參數,導致瀏覽器無法驗證此資源是否被竄改,若 CDN 遭入侵、被植入惡意碼,使用者端也會執行不安全內容。
❷ SRI(子資源完整性) 正確寫法
需補上 integrity 及 crossorigin 屬性,例如:
<script
src="https://www.googletagmanager.com/gtag/js?id=XXXXXXX"
integrity="sha384-XXXXXXX"
crossorigin="anonymous">
</script>
|
integrity:哈希值,用來驗證資源完整性。
crossorigin="anonymous":避免送出憑證,配合 SRI 一起使用。
❸ 取得 SRI 哈希值的方式
可以用官方推薦的 SRI Hash Generator 工具:
步驟:
瀏覽器開啟 https://www.googletagmanager.com/gtag/js?id=XXXXXXX
下載該 .js 檔案。
將內容貼入 https://www.srihash.org 生成 SRI 雜湊碼。
將雜湊碼填入 integrity。
❹ 注意事項
第三方資源若經常變動(例如 id 參數不同、檔案不固定),SRI 難以套用。
Google Analytics、Tag Manager 等部分官方不提供固定 SRI 雜湊,需自行判斷風險,或改為自有主機代管版本。
❺ 替代方案
若無法使用 SRI,可考慮:
✔ 透過企業防火牆、WAF 過濾異常外部資源。
✔ 自行下載並代管必要 JS 檔,避免依賴 CDN。
✔ 與資安團隊評估是否能申請該弱點例外。
********************************************************************************
2025-07-04補,
HCL AppScan 10.18.0 掃描後,報告【SRI (Subresource Integrity) 的檢查】,
問題在<script src='https://www.google.com/recaptcha/api.js'></script>
ChatGPT 說:
3️⃣ Google reCAPTCHA 是否支援 SRI?
⚠️ Google reCAPTCHA 官方不提供 SRI Hash,原因:
- https://www.google.com/recaptcha/api.js 內容會根據不同請求、地域、版本動態改變
- SRI 必須針對固定內容計算 Hash
- 動態內容無法適用 SRI
所以,即使你想手動加上 integrity,也無法保證 Hash 不變,反而可能導致資源加載失敗。
4️⃣ 如何處理?
最佳實務:
- 對於 可信任第三方如 Google reCAPTCHA,即使無法加 SRI,AppScan 報告可以標記為「False Positive(誤判)」
- 可以在安全報告中補充說明:「此資源為 Google 官方提供,雖無法套用 SRI,但來源可信,且符合官方建議實作」
Subresource integrity
https://groups.google.com/g/recaptcha/c/BFY3TZ-2g3w?pli=1
Google recaptcha fails SRI
https://github.com/mozilla/http-observatory/issues/364
[研究]ASP.NET WebForm 網站【檢查是否有 SRI(子資源完整性)支援】弱點處理
https://shaurong.blogspot.com/2025/07/aspnet-webform-sri.html
[研究]Google reCAPTCHA 不支援 SRI (子資源完整性,Subresource Integrity) 佐證https://shaurong.blogspot.com/2025/10/google-recaptcha-sri-subresource.html

沒有留言:
張貼留言