如何让我的ASP.NET网站允许URL中的管道字符?

时间:2010-02-01 05:22:06

标签: asp.net url

此网站http://www.donateblood.com.au不接受管道字符|在网址

这有效http://www.donateblood.com.au/news-events.aspx?IDDataTreeMenu=33

但这不是

http://www.donateblood.com.au/news-events.aspx?IDDataTreeMenu=33&y=|

管道似乎是一个问题

http://www.donateblood.com.au/news-events.aspx?IDDataTreeMenu=33&y=

作品。

我需要停止此操作,因为名为Omniture的第三方需要使用|自动访问此网站在URL中。 我不能要求他们编码|因为他们是一家大公司。 他们说有一些方法允许|但我不确定如何。

我只能访问web.config,而不是服务器,因为它托管在大型托管公司的共享服务器上。

答案:

事实上,我们自己的代码阻塞了管道 很难追查,但就是这样。 通过搜索重定向发生的页面名称可以更容易地找到它。

多么令人尴尬!

3 个答案:

答案 0 :(得分:1)

URL标准不允许

管道字符(以及许多其他!);见http://www.faqs.org/rfcs/rfc1738.html

如果他们知道如何使其发挥作用,他们应该乐意告诉你!

答案 1 :(得分:1)

在URL中应该允许管道字符。

不知何故,当您注意到管道时,您的代码或某些底层系统的行为会有所不同。找出那个系统是什么,然后停止它。

- 编辑:

FWIW,我怀疑它是某种基础日志系统,希望检查它认为“无效”的字符。检查安装了哪种类型的服务,并弄清楚如何重新配置​​它们(以及这将对整体安全性等产生什么结果)。

AFAIK,拒绝此类字符不是ASP.NET或IIS的默认行为。

答案 2 :(得分:1)

事实上,我们自己的代码阻塞了管道 很难追查,但就是这样。

多么令人尴尬!