所以我试图捕获所有查询字符串并返回403。 我的web.config中有以下规则(使用URL Rewrite模块)
<rewrite>
<rules>
<rule name="PREVENT QUERYSTRING" stopProcessing="true">
<match url="([?&=]+)" />
<action type="CustomResponse" statusCode="403" subStatusCode="0" statusReason="Unallowed" statusDescription="Unallowed" />
</rule>
</rules>
</rewrite>
然后我输入我的浏览器
我不会得到403。 有人可以告诉我为什么吗?感谢。
答案 0 :(得分:1)
您必须匹配查询字符串而不是请求URL。喜欢这个
<rewrite>
<rules>
<rule name="PREVENT QUERYSTRING" patternSyntax="ECMAScript" stopProcessing="true">
<match url=".*" />
<action type="CustomResponse" statusCode="403" subStatusCode="0" statusReason="Unallowed" statusDescription="Unallowed" />
<conditions>
<add input="{QUERY_STRING}" pattern="([?&=]+)" />
</conditions>
</rule>
</rules>
</rewrite>