跳至主要內容
CJCJ Kuo

全站文章搜尋

輸入關鍵字即刻在靜態索引中快速搜尋
↑↓ 導航 · Enter 選取前往獨立搜尋頁 →
.NET Framework  防護 XSS 方法
資訊技術••約 2 分鐘•457 字

.NET Framework 防護 XSS 方法

本文目錄共 2 節

小編接觸的客戶願意掃描靜態網頁源碼並不多,最近碰到了一個願意在資安上投入資源,使用Fortify掃描完成後報告頁數多到不行,雖然套用上 WAF 在前方阻擋後可以解決大部分問題,而程式碼的漏洞還是必須得修正。

與客戶溝通為什麼網頁程式碼需要修正,並協助客戶找怎麼改寫程式碼 AP廠商過得好開心 ,小編花了時間了解問題及幫忙查證修正方式,順道紀錄畢竟實作安全的知識永遠不嫌少。

客戶有問題的程式碼如下方第四行: Text=‘<%# Eval(“Value”) %>’,沒有針對輸入的資料進行 encode,會讓攻擊者有機會進行 XSS 等攻擊。

ASPX 網頁中包含未編碼 Eval 屬性值的程式碼截圖,顯示潛在 XSS 弱點

修正方式:

方法一 :

.NET 4.5 版本以上使用 Text=‘<%# Eval(“Value”) %>’

Text='<%# Eval("Value") %>'

在<%# 之後再添加一個 : 就會自動進行編碼。

Text='<%#: Eval("Value") %>'

方法二:

使用 HttpUtility 類

  • HtmlEncode 對 html 編碼的字串進行編碼,並回傳已經編碼的文字。
  • HtmlDecode 對 html 編碼的字串進行解碼,並回傳已經解碼的文字。
Text='<%# Eval("Value") %>'

在Eval外在包一層將文字根據需求將文字進行編碼或解碼。

Text='<%#: HttpUtility.HtmlEncode(Eval("Value")) %>'

小編對於 ASP 的撰寫還是新手,對於安全上還是盡可能詳細查詢跟處理。如有更好的寫法也請提供給我,將修正並用更安全的方式處理。

參考來源:

查看此系列所有文章 →
CJ Kuo (郭仕杰)

CJ Kuo (郭仕杰)

創辦人兼主筆

熱愛軟體架構、DevOps、系統調優與新技術探索的工程實踐者,也會寫寫投資和生活。

獨立技術專刊推播

訂閱技術電子報

有新文章發布時寄送到您的信箱,不發送垃圾信。