Urls / lpt1和/ com1导致IIS呈现自己的死亡屏幕

时间:2011-06-23 13:51:41

标签: iis iis-7.5

运行最近的SkipFish扫描时 - 如果您拨打/lptX/comX(其中X是数字1-9),我们发现IIS(7.5)会返回以下内容。

Server Error in '/' Application.

The resource cannot be found.

Description: HTTP 404. The resource you ...[and so on]...

这很简单,我们在站点级别和Web服务器配置级别都有自定义[漂亮]错误。

如果您有一个,请立即在IIS框中试用它 - http://localhost/lpt1应该这样做。

我猜这是LPT打印机和鼠标通过COM端口连接的“好时光”的遗留物。但是看到我无法配置的IIS区域有点令人不安。

是否可以强制IIS为这些“特殊”网址提供自定义404页面?

2 个答案:

答案 0 :(得分:6)

在ASP.NET 4.0之前,您无法在您的网址上使用某些保留的文件名,例如conlptaux等等:

  

Zombie Operating Systems and ASP.NET MVC

这是ASP.NET的限制,而不是MVC。

然而,好消息是现在可能:

  

Putting the Con (COM1, LPT1, NUL, etc.) Back in your URLs

如果您不使用ASP.NET 4.0,则应该能够使用IIS7自己的<httpErrors>配置设置来捕获这些404。

答案 1 :(得分:0)

使用ASP .NET 3.5,您可以使用url rewrite模块的url重写规则,以便将url更改为有效的url。

url rewite module是:

  

适用于IIS 7及更高版本的Microsoft URL重写模块2.0可启用IIS   管理员可以创建强大的自定义规则来映射请求URL   友好的URL,用户更容易记住和更容易   搜索引擎找到

类似的东西:

<rewrite>
  <rules>
    <rule name="CON rewrite" stopProcessing="true">
      <match url="(.*)/(con\.)(.*)" />
      <action type="Redirect" url="{R:1}/con-{R:3}" redirectType="SeeOther" />
    </rule>     
  </rules>
</rewrite>