[.NET]Input Validation and Representation Server.HtmlEncode Replace Tool
前陣子程式被Fortify掃到Cross-Site Scripting: Persistent(Input Validation and Representation, Data flow) 的嚴重缺失,
因為Fortify無法得知如果在Code中處理Server.HtmlEncode(請參考:[ASP.NET]Input Validation and Representation, Data flow),所以只好直接在aspx中找Eval的部份,然後加上Server.HtmlEncode。
因為程式支數蠻多的,而這個有個Pattern可以Replace,所以就寫個Replace Tool來Replace,
在C# ASPX中,要將 Text='<%# Eval("c2") 置換成 Text='<%# Server.HtmlEncode(Eval("c2") as string)
在VB.NET ASPX中,要將 Text='<%# Eval("c2") 置換成 Text='<%# Server.HtmlEncode(Eval("c2"))
2013/06/25 修改: 要將 Text='<%# Eval("c2") 置換成 Text='<%# Server.HtmlEncode(Convert.ToString(Eval("c2")))
當然,如果您要使用AntiXssLibrary的方式也可以哦!
程式中主要是針對某目錄下所有的aspx及ascx來Replace,然後存成UTF8編碼的檔案。
希望這Tool可以幫助大家,如果覺得有什麼想法,請再跟小弟說吧,謝謝!
環境:VS2010, .NET 2.0
原始檔:
AspLabelReplaceV2.zip (2013/06/25 改使用Convert.ToString加到Server.HtmlEncode之中)
Hi,
亂馬客Blog已移到了 「亂馬客 : Re:從零開始的軟體開發生活」
請大家繼續支持 ^_^