Iis %2B解码到空格而不是加号
我们在特定服务器中遇到问题。所有贴在应用程序上的加号都将替换为空格,即该站点所有页面上的“发布”和“获取”中的空格。Iis %2B解码到空格而不是加号,iis,encoding,asp-classic,isapi,Iis,Encoding,Asp Classic,Isapi,我们在特定服务器中遇到问题。所有贴在应用程序上的加号都将替换为空格,即该站点所有页面上的“发布”和“获取”中的空格。 作为一个测试用例,我有一个小页面(它是一个ASP服务器): 以前的值: 查询字符串: 在其他每台服务器上都可以正常工作,但在一台服务器上,plus会被空格取代。 例如:对于输入“12+3”,请求(“Plus”)是“13”,查询字符串是“1+2+3”。无益。其他字符似乎解码正确。 应该说有人试图“强化”此服务器以抵御攻击,因此可能会打开模糊的IIS选项(尽管我们确实删除了ISA
作为一个测试用例,我有一个小页面(它是一个ASP服务器):
以前的值:
查询字符串:
在其他每台服务器上都可以正常工作,但在一台服务器上,plus会被空格取代。例如:对于输入“
12+3
”,请求(“Plus”)是“13
”,查询字符串是“1+2+3
”。无益。其他字符似乎解码正确。应该说有人试图“强化”此服务器以抵御攻击,因此可能会打开模糊的IIS选项(尽管我们确实删除了ISAPI筛选器)。
谢谢
更新: 原来安装了另一个过滤器,SQL注入过滤器是来自的PicLipSqlInjection.dll。
筛选器存在错误-它将替换POST和GET中的有效字符:
“+”
(带空格而不是分号)。不是最佳解决方案,但这正是老板想要的。考虑Ascii代码。用它的ascii码代替加号。它应该是chr(43)。asp和sql都能理解这一点 这是一个包含所有ascii代码的表。
考虑Ascii码。用它的ascii码代替加号。它应该是chr(43)。asp和sql都能理解这一点 这是一个包含所有ascii代码的表。
嗯,这也让我感到困惑。直到我看到这个帖子: 简言之:
- (大约在1995年),声明在请求体中将空白的“”解析为“+”
- (2005年1月)声明空白“”应解析为“%20”
%2b
首先转换为+
(普通ascii/urldecode规则,然后转换为
(RFC-1866规则)
这是我的猜测,我不在乎过时的技术,更多细节,请参见,这也让我困惑。直到我看到这篇文章: 简言之:
- (大约在1995年),声明在请求体中将空白的“”解析为“+”
- (2005年1月)声明空白“”应解析为“%20”
%2b
首先转换为+
(普通ascii/urldecode规则,然后转换为
(RFC-1866规则)
这是我的猜测,我不在乎过时的技术,更多细节,请参见这不是一个很好的解决方案,但它是有效的。我会接受你的解决方案,因为这个小补丁最终就是我们所做的。无论如何,谢谢。不要太过个人化,但我注意到你住在以色列。那里的生活情况如何。它是否像我们的媒体描述的那样糟糕?我想很快去那里,因为我喜欢那里的文化和人民。这是一个很大的乐趣,但这里几乎不是谈论这一点的地方。请随时与我联系(我的博客有一些链接)这不是一个很好的解决方案,但它是有效的。我会接受你的解决方案,因为这一小部分就是我们最终所做的。无论如何,谢谢。不要太过个人化,但我注意到你住在以色列。那里的生活如何。它是否像我们的媒体描述的那样糟糕?我想很快去那里,因为我爱那里的文化和人民。这很好这是一个很大的乐趣,但这里几乎不是谈论这个的地方。请随时与我联系(我的博客有一些链接)
<html>
<body>
<form method="post">
<input type="text" name="Plus" id="Plus" />
<input type="submit" />
</form>
Previous Value: <%= request("Plus") %><br />
Query String: <%= request.querystring %>
</body>
</html>