用于跨站点脚本 asp.net 标志的漏洞扫描程序



我正在运行netspark漏洞测试,它标记了以下网址

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"/>

基于此,我几乎没有问题

  1. url中的'ns='netsparker(0x005AAD(是什么,它代表js
  2. 我怎样才能防止这种情况
  3. 我采取的措施很好,或者我需要做更多。

在添加了一些安全步骤后,netsparket仍然将其标记为xss。我该如何解决这个问题,使其不被标记

基本上,当前的代码清理是基于黑名单的,这是一种不好的做法

在这种特定情况下,您不需要清理,而是需要对传入的输入进行编码

ASP.Net 输入验证也基于黑名单,这也是不安全的。

最新更新