运行最近的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页面?
答案 0 :(得分:6)
在ASP.NET 4.0之前,您无法在您的网址上使用某些保留的文件名,例如con
,lpt
,aux
等等:
这是ASP.NET的限制,而不是MVC。
然而,好消息是现在可能:
如果您不使用ASP.NET 4.0,则应该能够使用IIS7自己的<httpErrors>
配置设置来捕获这些404。
答案 1 :(得分:0)
使用ASP .NET 3.5,您可以使用url rewrite模块的url重写规则,以便将url更改为有效的url。
适用于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>