2015-02-09 73 views
1

我在IIS(Internet信息服务)上托管了一个页面。这是ASP经典。 托管窗口服务器2008年ASP经典页面冻结包含查询字符串的值“etc.com?v0=%25n”

<% 
dim x 
x = Trim(UCase(Request.QueryString("v0"))) 
if x= "" then 
x="no value" 
end if 
response.write "<h1>Hello World "& x &"</h1>" 
%> 

尝试下面的地址,在Internet Explorer

输入地址:

 

    "test/sample.asp?v0=%25ABC" 

结果:

 

    "Hello World %ABC" 

输入:

 

    "test/sample.asp" 

结果:

 

    "Hello World No Value" 

输入地址:

 

    "test/sample.asp?v0=%25123" 

结果:

 

    "Hello World %123" 

输入地址:

 

    "test/sample.asp?v0=%25n" or "test/sample.asp?v0=%25N" 

结果:

 
Web browser stop working. 

有IIS导致此症状中的任何设置?或任何其他原因?

的Add-On - 2015年2月11日

实际的编码是不是真的保密。但其时间太长,无法在这里发布。但实际情况是如下:

用户可以使用input box type text搜索项,然后onblur输入转发到调用showmodaldialog.

与下面的示例的函数:

javascript 

window.showModalDialog("search_item.asp?v0="+input) 

的在发送前,输入为URL编码。 用户发现“%”符号实际上是通配符。 *不真的知道他们是如何发现的。

所以他们一直在使用它。但是,由于我们将网站迁移到了 新服务器。问题开始发生。

因此,我试图缩小冻结的原因,并发现价值发送导致的问题。

我不熟悉IIS。在设置IIS时,这可能是我的错误。

+0

你能解释为什么你的查询字符串会有这个值,也许从发布页面发布代码?这听起来像一个问题,可以通过UrlEncode解决(参见这里的例子:http://stackoverflow.com/q/9579151/3915817),但很难确切知道你不需要这些字符的原因,以及为什么他们首先在你的网址中。 – KHeaney 2015-02-10 14:31:00

+0

编辑过的帖子里有更多的样本,很抱歉被模糊。 新服务器是stil窗口服务器2008。改为新的硬件。来自IBM。 – WyHowe 2015-02-10 16:54:32

+0

你在旧的设置上尝试过%25N吗?那里没有错误吗? – KHeaney 2015-02-10 17:25:40

回答

1

美好的一天,我终于找到造成冻结的原因。它由于杀毒软件! 防病毒软件将查询字符串识别为入侵,从而阻止IP。 默认为60分钟。不能附上图片,但细节如下

防病毒:卡巴斯基反病毒软件套件WKS和FS。

安全类型:网络攻击阻止程序。

网络攻击类型:Intrusion.Win.EasyAddressWebServer.format-string.exploit

目前正在寻找替代方案,以允许特定网络instrusion。