Asp.net web api 为什么这些URL段会导致404?

Asp.net web api 为什么这些URL段会导致404?,asp.net-web-api,url-routing,Asp.net Web Api,Url Routing,我们的测试人员是模糊测试的大师 他发现,在我们的web API中,将某些值放入URL段似乎总是会导致404,但我不知道为什么。以下是一些例子: ,#'.][=->=>404 404 +=>404 ,#=>404 #,=>正确路由 例如,一条通常看起来像 http://api.mythingy.com/one/two/three 如果将其中一个段更改为上述“坏字符串”之一: http://api.mythingy.com/one/.,#/three 总是给出一个404 我看不到任何类似转义序列

我们的测试人员是模糊测试的大师

他发现,在我们的web API中,将某些值放入URL段似乎总是会导致404,但我不知道为什么。以下是一些例子:

  • ,#'.][=->
    =>404
  • 404
  • +
    =>404
  • ,#
    =>404
  • #,
    =>正确路由
例如,一条通常看起来像

http://api.mythingy.com/one/two/three

如果将其中一个段更改为上述“坏字符串”之一:

http://api.mythingy.com/one/.,#/three

总是给出一个404


我看不到任何类似转义序列的东西。我确实看到了一些不可靠的值(比如
为什么它应该返回400个错误请求?
404是请求不存在路由的正确答案


.#将起作用,因为#是fragemts的特殊标识符。(

在URL中保留哈希,分隔(本地)片段标识符,来自URL的其余部分;它们不应发送到服务器,而是由客户端在本地使用。发送它们会导致客户端错误,这并不奇怪。摘要:模糊测试或非URL都必须是有效的URL才能获得合理的结果。谢谢。如果不检查适用的RFC,您对
有什么想法,请不要立即查看。In测试人员最终需要这样做。默认情况下,ASP.NET拒绝包含