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

问题描述 投票:0回答:1

我正在运行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"/>

基于此,我有几个问题

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

添加几个安全步骤后,netsparket仍将其标记为xss。我怎么能解决这个问题,以免它被标记

asp.net security webforms xss owasp
1个回答
1
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.