2018年4月16日 星期一

[研究][ASP.NET] 用了 AntiXssEncoder.HtmlEncoder 仍被 Fortify SCA v17.20 說有問題

[研究][ASP.NET] 用了 AntiXssEncoder.HtmlEncoder 仍被 Fortify SCA v17.20 說有問題

2018-04-16

用了 AntiXssEncoder.HtmlEncoder 仍被 Fortify SCA v17.20 說有問題
Cross-Site Scripting: Reflected

開始思考:

  • Fortify SCA v17.20 白箱測試工具是否認得 AntiXssEncoder.HtmlEncode?不確定
  • 是否有更新版本 Fortify SCA?沒有
  • Fortify SCA的 rule 是否有更新?是
  • 是否程式本身問題?

檢查程式碼,發現問題,這個 function 實際上有兩條路徑,一條有用到 AntiXssEncoder.HtmlEncode,另一條沒有用到 AntiXssEncoder.HtmlEncode。

public static string CheckURLString(string userInput)
    {
         if (checkForSQLInjection(userInput))
         {
             throw new System.Exception(funcABC(userInput));
             return "";
         }
        else
            return AntiXssEncoder.HtmlEncode(funcDEF(userInput), true);
    }

修改一下
public static string CheckURLString(string userInput)
    {
         if (checkForSQLInjection(userInput))
         {
             throw new System.Exception(funcABC(userInput));
             return AntiXssEncoder.HtmlEncode(funcABC(userInput), true);
         }
        else
            return AntiXssEncoder.HtmlEncode(funcDEF(userInput), true);
    }

測試一下,過了。

所以 Fortify Static Code Analyzer ( SCA ) v17.20 是認得 AntiXssEncoder.HtmlEncoder 的。

當然就實際觀點而言,return ""; 實際上是安全的,這是 Fortify SCA 誤判。

但是稍微改一下程式,可以避免 Fortify SCA 報告問題,省去向負責的同事或業主解釋的麻煩。

(完)

相關

[研究][ASP.NET] Fortify SCA v17.20 報告 Web.config ( Insecure Transport: Datbase) Critical 問題
http://shaurong.blogspot.com/2018/04/aspnet-fortify-sca-v1720-webconfig.html

[研究][ASP.NET] 用了 AntiXssEncoder.HtmlEncoder 仍被 Fortify SCA v17.20 說有問題
http://shaurong.blogspot.com/2018/04/aspnet-antixssencoderhtmlencoder.html

[研究][JavaScript] CKeditor 4.9.1 與 Fortify SCA v17.20
http://shaurong.blogspot.com/2018/04/javascript-ckeditor-491-fortify-sca.html

[研究][ASP.NET][JavaScript] hideShowPassword 與 Fortify SCA 白箱測試
http://shaurong.blogspot.com/2018/04/aspnetjavascript-hideshowpassword.html

[研究] Microsoft Anti-XSS Library V4.3 (Anti-Cross Site Scripting Library)
https://shaurong.blogspot.com/2017/06/microsoft-anti-xss-library-v43-anti.html

[研究] [ASP.NET] DropDownList1 的 Cross-site scripting (XSS) (Reflected XSS) 修正
https://shaurong.blogspot.com/2017/09/aspnet-dropdownlist1-cross-site.html

[研究] [ASP.NET] Cross-Site Scripting(XSS) 防範,白名單輸入驗證
https://shaurong.blogspot.com/2019/06/aspnet-cross-site-scriptingxss.html

[研究] X-XSS Protection
https://shaurong.blogspot.com/2017/06/x-xss-protection.html


沒有留言:

張貼留言