前言
最近系統被 Checkmarx 掃出有 Cookie_Injection 的問題。
似乎是怕在 Server 端取得 Cookie 的值,再給 Client 端時,會發生 XSS 的問題。
但它的 Issue 點卻是在 Request.Cookies[cookieName] ,如下,
1 | var cookieNme = "SurveyCookie"; |
解法
感覺 Checkmarx 一見到取回 Request 的 Cookie 就開槍。
所以只好調整成,取回 Cookie 的 Values ,然後改判斷它的值。
如果要產生 cookie 的話,就直接新增一個 cookie 物件,也不是重新利用 Request 的物件,如下,
1 | var cookieValues = Request.Cookies[cookieNme]?.Values; |
- 註: ?. 是 C#4 的語法,如果有問題的話,請更新 Microsoft.CodeDom.Providers.DotNetCompilerPlatform 套件。