[C#] 在網頁專案中使用 HtmlSanitizer 來防範 XSS 攻擊
2024-08-27
在做網頁專案中,很常會使用到 summernote 或是其他的 html 編輯器套件,會讓客戶輸入他自己要輸入的 html
但是呢為了避免客戶輸入的 的程式碼造成 XSS 攻擊,所以有些 Tag 或是 Attribute 是危險的,這時候有同事推薦這個套件
1. 你可以透過 nuget 下載該套件 https://www.nuget.org/packages/HtmlSanitizer/
2. 這邊我的們案例 這是我們測試的 html code
2.1 我們先測試預設什麼都不設定的狀況下他篩選掉什麼了,基本上 css,script 這些高危險的都被拿掉了
2.2 這時候我需要改變需求,我需要 script 這個 tag 這時候就可以自己手動加入
2.3 我需要用到 script 但是我不希望 在script 中 使用 src ,但是不能直接移除 src 這樣會影響到 img 下面的 src
其中,部分有參考 ChatGPT 的程式碼,但是使用過程中 ChatGPT 一直叫我使用 PostProcessNode 來處理
但是卻沒有得到有效的結果,最後還是參考文件寫,就留在這邊筆記一下。