首页 > 解决方案 > 如何让 IIS 请求过滤以对拒绝字符串执行完全匹配

问题描述

所以我有这个配置块,我特别希望阻止 URL。

<security>
  <requestFiltering allowDoubleEscaping="true">
            <filteringRules>
                <filteringRule name="testrule" scanUrl="false" scanQueryString="false">
                    <scanHeaders>
                        <clear />
                        <add requestHeader="User-agent" />
                    </scanHeaders>
                    <denyStrings>
                        <clear />
                        <!-- MY QUESTION IS ABOUT THIS BLOCK -->
                    </denyStrings>
                    <appliesTo>
                        <clear />
                    </appliesTo>
                </filteringRule>
            </filteringRules>
        </requestFiltering>
</security>

当我将此行添加到<denyStrings>我转义.字符的部分时:

<add string="yacy\.net" />

用户代理:yacy.net仍然有效。

有了这条线:

<add string="yacy.net" />

User-Agent:yacy.net被阻止,但yacy.net12yacy.net1.

我的问题:如何仅阻止完全匹配的字符串?而不是部分匹配,就像现在一样。我在 Microsoft 文档中找不到任何关于此的内容,显然我不是唯一一个

与此相关:通过.htaccess文件查看阻塞时,我通常必须转义空格.和下划线,但显然在 IIS 下不需要转义?

标签: escapingstring-matchingiis-10requestfiltering

解决方案


推荐阅读