2014-10-07 4 views
0

До сих пор я попытался добавить следующее к моему web.config:Как предотвратить запросы OPTIONS в приложении ASP.NET?

<system.web> 
    <authorization> 
     <deny verbs="OPTIONS" users="*" /> 
    </authorization> 
    <httpHandlers> 
     <remove verb="*" path="*.asmx" /> 
     <add verb="OPTIONS" path="*" type="System.Web.DefaultHttpHandler" validate="true"/> 
     <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
     <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
     <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false" /> 
    </httpHandlers> 
</system.web> 

Вы можете увидеть, что я добавил запись в httpHandlers узел, но уже несколько других записей там, так что ISN» Единственное, что там.

Даже с обоими из этих записей, когда я делаю следующий CURL запрос:

curl -v -X OPTIONS https://mySite.com 

Я вижу следующие на выходе:

< HTTP/1.1 200 OK 
< Cache-Control: private, no-cache, no-store 
< Allow: OPTIONS, TRACE, GET, HEAD, POST 

Почему OPTIONS запросы по-прежнему разрешено?

ответ

1

В <authorization> вы можете играть только с глаголами, сопоставленными с ASP.NET.

verbs: A comma-separated list of HTTP transmission methods that are denied access to the resource. Verbs registered to ASP.NET are GET, HEAD, POST, and DEBUG. 

Вы можете попробовать <verbs> элемент

Смежные вопросы