IIS 7.5伪造404错误'aux'路径

时间:2013-02-06 20:33:43

标签: iis error-handling

任何人都知道如何防止此IIS7.5 / aux路径问题(在IIS 8上工作)。这不是真正的404错误!?!前http://msdn.microsoft.com/aux

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:0)

如果您正在处理此类问题,则可能意味着您的应用程序在URL路径中使用了可能是用户最初输入的任意文本。这是在所谓的“ REST” API中使用的误导设计模式,目的是使URL“漂亮”。您可能还会遇到以下问题:百分比编码,Unicode字符,反BNP Unicode字符(表情符号!),Unicode规范化,不区分大小写(以及Turkish-i和Greek-something问题)以及无数问题被发现。

REST与漂亮的URL无关,漂亮的URL不需要包含任意文本(并且除非您是Wikipedia,否则您将很难正确地做到这一点)。漂亮的URL改善您的Google排名最多是有争议的,即使不是神话。

以下是一些重新设计应用程序中URL的建议:

  1. 使用唯一的ID代替名称。易读的名称永远不能用作标识符。
  2. 如果您认为必须用文本装饰URL(除了唯一ID),然后“清理”文本部分。例如,您可以删除所有非ASCII字符以及URL,空格等中具有特殊含义的任何字符,并用破折号替换不允许的字符序列。当然,也可以替换“禁止”名称,例如aux。但是,严重的是,不要理会这样的“美化” URL。
  3. 如果对您的应用程序有意义,则让用户指定URL片段,但使用验证来限制允许的URL。然后,您可以将片段强制为唯一的,并将其用作唯一的ID,而不仅仅是修饰。
  4. 如果aux是您网址的固定部分,只需将其替换为其他内容即可。
  5. 使用查询字符串或POST请求进行任意用户输入。当然,还要对其进行验证和消毒。诸如搜索字符串之类的内容不应位于U​​RL路径中。
  6. 如果您不同意,或者您没有选择的余地,或者没有时间重新设计API,请参见https://stackoverflow.com/a/14771755/2279059