このURLは、pciコンプライアンススキャンの一部であり、返された非常にまばらなasp.netエラーページにフラグを立てています。これは、ライブサイトでは500ステータスコードとテキストです。
'/'アプリケーションのサーバーエラー。
ランタイムエラー
説明:リクエストの処理中に例外が発生しました。さらに、最初の例外のカスタムエラーページの実行中に別の例外が発生しました。リクエストは終了しました。
ただし、Visual Studioでサイトを実行すると、404とテキストが表示されます。
'/'アプリケーションのサーバーエラー。
リソースが見つかりません。
説明:HTTP404。探しているリソース(またはその依存関係の1つ)が削除されたか、名前が変更されたか、一時的に使用できなくなった可能性があります。次のURLを確認し、スペルが正しいことを確認してください。
要求されたURL:/WEB-INF./web.xml
バージョン情報:Microsoft .NET Frameworkバージョン:4.0.30319; ASP.NETバージョン:4.0.30319.18044
ルーティングでそのURLを無視し、それを404ルート/error/not-found
にマッピングしようとしましたが、デフォルトで/error/internal
にリダイレクトされるカスタムエラーが発生します。また、locationタグを使用してアクセスを拒否し、リクエストフィルタリングでブロックし、そのパスでハンドラーを使用してリクエストをキャッチしようとしました。
この書き直しを試し、同じルールのブロックとリダイレクトも試しましたが、それでも同じasp.netエラーページが表示されます。画像は切り取られますが、ルールは^.*\./.*$
であり、フィルタリングしようとしているURLと一致します(単にWEB-INF
も試しました)。
このURLを取得してカスタムエラーページを表示する方法はありますか?
Web.configのhttpRuntimeノードにrelaxedUrlToFileSystemMapping="true"
を追加すると、このURLがASP.NetMVCによって期待どおりに処理されるようになりました。
<system.web>
<httpRuntime relaxedUrlToFileSystemMapping="true" />
</system.web>
IISでは、デフォルトで詳細なエラーメッセージがローカルクライアントに表示されます。そのため、Visual Studioを介してこれらのメッセージを表示できますが、リモートで500エラーが発生します。
変更するには、IIS Managerで影響を受けるサイトをクリックし、機能ビューで[エラーページ]をクリックして、右側のウィンドウで[機能設定の編集]を選択します。次に、 「カスタムエラーページ」を選択して、このように構成することができます。
編集:Tomcatには脆弱性もあります:
<servlet-mapping>
<servlet-name>FileServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
これをweb.xmlファイルで見つけて、コメントアウトします。これにより、誰かが/WEB-INF./にアクセスしてファイルにアクセスするのを防ぐことができます。/WEB-INF /は適切な404を投げる必要があることに注意してください。