[Checkmarx掃描漏洞處理] - Value Shadowing
從HttpRequest取值時,如果寫成
string id = Request["id"];
就會有Value Shadowing的問題。
依照MSDN中的說明,這樣的寫法會從所有 HTTP 要求集合中找出的索引鍵="id"的資料,
另一篇文章中說明HttpRequest取值得順序為QueryString → Form → Cookies → ServerVariables
所以如果同時有在QueryString及Form有同樣的Key的話,只會取到QueryString的值,駭客就可以用這樣的方法注入任何文字。
因此應該從HttpRequest中取值時,應該要明確寫明來源,以QueryString為例:
string id = Request.QueryString["id"]
參考資料: