IIS 8按JSON有效负载字段阻止请求
我有一个MVC.NET 4 web服务器,它接受HTTP POST请求,并将JSON格式的字符串作为请求数据。 我想在请求到达服务器之前在IIS级别添加一条规则,以阻止某个正则表达式对该JSON字符串的请求。有可能吗?既然你说: 我希望它处于IIS级别,以避免更多的web负载 服务器级需要为每个请求创建另一个线程。这个 我想阻止某些请求的原因是它们与 我的应用程序的负载很高,我无法阻止他们从 客户端 您有两种选择:IIS 8按JSON有效负载字段阻止请求,json,asp.net-mvc,iis,payload,Json,Asp.net Mvc,Iis,Payload,我有一个MVC.NET 4 web服务器,它接受HTTP POST请求,并将JSON格式的字符串作为请求数据。 我想在请求到达服务器之前在IIS级别添加一条规则,以阻止某个正则表达式对该JSON字符串的请求。有可能吗?既然你说: 我希望它处于IIS级别,以避免更多的web负载 服务器级需要为每个请求创建另一个线程。这个 我想阻止某些请求的原因是它们与 我的应用程序的负载很高,我无法阻止他们从 客户端 您有两种选择: 请求过滤 URL重写 请仔细阅读这篇文章,了解他们最重要的事情。如果您的选择是第
下的请求:
<rule name="Block Bad Request Strings" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAny" trackAllCaptures="false">
<add input="{QUERY_STRING}" pattern="id=([^\"]*[^-]?>)|(?:[^\\w\\s]\\s*\\\/>)|(?:>\") />
</conditions>
<action type="CustomResponse" statusCode="403" statusReason="Forbidden: Access is denied." statusDescription="You do not have permission" />
</rule>
我认为创建和添加自定义可以解决您的问题。HTTP模块在每个请求上被调用,以响应BeginRequest
和EndRequest
事件。要阻止某个正则表达式对该JSON字符串的请求,请解释您的意思…@DaveAlperovich请求具有JSON格式的字符串体。因此,如果该字符串与某个正则表达式匹配,则中止请求,就像您可以将查询url与使用OWIN的正则表达式匹配一样?或者可以使用HttpApplication.BeginRequest事件?你们能详细解释一下为什么它必须在IIS级别上吗?我并没有使用OWIN,我希望它在IIS级别上,以避免web服务器级别的更多负载,从而需要为每个请求创建另一个线程。我想阻止某些请求的原因是,它们与我的应用程序不再相关,它们的负载很高,我无法从客户端阻止它们。谢谢你的时间,如果你阻止ip不是更容易吗?谢谢-我实际上在寻找一种在IIS级别阻止它的方法,而不是在web服务器上。BeginRequest事件会这样做吗?当你说IIS级别时..你的意思是只对一个特定的网站实施阻止吗?或使用