我们有来自客户的网址
http://oursite.com/foo/12345678-7488-4807-f249-2085208293f0/somefilename.xml&fileTypeId=1
这些来自错误配置其设置的客户,而&
应为?
。我们有网址重写规则,可以使用该表单中的网址并将其转换为有效的网址
<rule name="Testing Rewrite" enabled="true">
<match url="foo/([0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12})/(.*)" />
<action type="Rewrite" url="ChannelContent/?foo={R:1}&resourceUrl={R:2}" appendQueryString="false" logRewrittenUrl="true" />
</rule>
大部分时间这种方式都可以,但我们偶尔会使用这些网址获取未处理的异常A potentially dangerous Request.Path value was detected from the client (&)
。
相同的网址有时会很好,有时会抛出异常。
我们考虑过将requestPathInvalidCharacters
添加到web.config中,但由于它是间歇性的,因此检查这是否会解决问题并不是一个很好的方法术语