簡體   English   中英

Urls / lpt1和/ com1導致IIS呈現其自己的死亡屏幕

[英]Urls /lpt1 and /com1 cause IIS to render its own screen of death

在運行最近的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服務器配置級別存在自定義[pretty]錯誤無關。

如果您有一個,請立即在IIS框中嘗試使用-http:// localhost / lpt1應該可以。

我猜這是LPT打印機和鼠標通過COM端口連接的“美好時光”的遺留事物。 但是看到我無法配置的IIS區域有些令人不安。

是否可以強制IIS為這些“特殊” URL提供自定義404頁面?

在ASP.NET 4.0之前,無法在URL中使用某些保留的文件名,例如conlptaux等:

僵屍操作系統和ASP.NET MVC

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

不過,好消息是現在有可能:

將騙局(COM1,LPT1,NUL等)放回您的URL中

如果您不使用ASP.NET 4.0,則應該能夠使用IIS7自己的<httpErrors>配置設置來捕獲這404個。

使用ASP .NET 3.5,可以使用url重寫模塊的url重寫規則,以將url更改為有效的URL。

url rewite模塊是:

用於IIS 7及更高版本的Microsoft URL重寫模塊2.0使IIS管理員可以創建功能強大的自定義規則,以將請求URL映射到友好的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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM