Я поставил пользовательскую страницу ошибки и поставил блокировку глагола, разрешив только GET и POST. Но когда я пытаюсь использовать другой метод (DELETE, OPTION, TRACE), он не перенаправляет на страницу пользовательской ошибки, а также раскрывает версию сервера . Версия сервера не раскрывается в HTTP 200.
Ошибка обработки страницы -:
<httpErrors errorMode="Custom" existingResponse="Auto" defaultResponseMode="Redirect" >
<remove statusCode="500" subStatusCode="-1" />
<error statusCode="404" path="SSPERR.aspx" responseMode="Redirect"/>
<error statusCode="500" path="SSPERR.aspx" responseMode="Redirect"/>
</httpErrors>
Правила
<httpErrors errorMode="Custom" existingResponse="Auto" defaultResponseMode="Redirect" >
<remove statusCode="500" subStatusCode="-1" />
<error statusCode="404" path="SSPERR.aspx" responseMode="Redirect"/>
<error statusCode="500" path="SSPERR.aspx" responseMode="Redirect"/>
</httpErrors>
<security>
<requestFiltering>
<verbs allowUnlisted="false">
<clear/>
<add verb="GET" allowed="true"/>
<add verb="POST" allowed="true"/>
</verbs>
</requestFiltering>
</security>
<rewrite>
<outboundRules rewriteBeforeCache="true">
<rule name="Remove RESPONSE_Server" >
<match serverVariable="RESPONSE_Server" pattern=".+"/>
<action type="Rewrite" value="" />
</rule>
</outboundRules>
</rewrite>
<httpProtocol>
<customHeaders>
<remove name="X-Powered-By" />
</customHeaders>
</httpProtocol>
<modules runAllManagedModulesForAllRequests="true" />
Файл Global.asax -:
protected void Application_PreSendRequestHeaders(object sender, EventArgs
{
HttpContext.Current.Response.Headers.Remove("Server");
HttpContext.Current.Response.Headers.Remove("X-AspNet-Version");
HttpContext.Current.Response.Headers.Remove("X-AspNetMvc-Version");
}