【发布时间】:2019-11-06 13:22:43
【问题描述】:
我已经放置了自定义错误页面并放置了动词阻塞,只允许 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");
}
【问题讨论】:
标签: c# security iis web-config