我正在运行netspark漏洞测试,并在url之后标记
http://localhost:54923/search/'ns ='netsparker(0x005AAD)
我无法弄清'ns='netsparker(0x005AAD)
是什么部分或如何解决此问题,因此我正在清理输入/search/searchkeyword
以使用户也对输入进行编码
用户在搜索输入框中输入关键字,然后使用搜索关键字http://localhost:54923/search/apple
将页面重定向到搜索页面
1>它不包含JS脚本
if (filterInput.Contains("onmouseover") || filterInput.Contains("script") || filterInput.Contains("</style>") || filterInput.Contains("</script>") || filterInput.Contains("<") || filterInput.Contains("%3c") || filterInput.Contains("?") || filterInput.Contains("%3f") || filterInput.Contains("alert") )
{
search = System.Web.HttpUtility.HtmlEncode(filterInput);
Response.Write("Invalid Search");
Response.End();
}
2>我将以下行添加到web.config中以使其更加安全
<httpRuntime targetFramework="4.5" requestValidationMode="2.0" enable="true" encoderType="System.Web.Security.AntiXss.AntiXssEncoder,System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
基于此,我有几个问题
添加一些安全步骤后,netsparket仍将其标记为xss。我该如何解决这个问题,使其不会被标记
答案 0 :(得分:1)
基本上,当前的代码清理基于黑名单,这是一种不良做法。
在这种情况下,您无需清理,而编码输入的输入。
同样基于黑名单的ASP.Net输入验证也不是安全。