在IIS中导航到我的站点后,在主页上选择“请求筛选”,“标题”选项卡,选择“添加标题...”并输入以下对:
Header Size Limit
---------------------------
Content-type 100
基于Microsoft docs,然后我期望,如果任何HTTP请求进入站点时,其“ Content-type”的长度大于100个字节,则该请求将被错误代码拒绝
但是,我然后通过Python中的request包尝试了以下操作,并收到了带有“ 200”代码的内容:
resp = requests.get('http://[MY_SITE].com', {'Content-type':"Some_incredibly_long_arbitrary_string_which_realistically_is_greater_than_100_bytes_in_length_and_Id_expect_IIS_not_to_respond_to"})
我尝试使用POST而不是GET进行尝试,并通过将标头限制添加到docs中所示的web.config中,但是无论我如何处理,服务器都响应并且从未拒绝我的请求。但是文档似乎说得很清楚:
以下示例Web.config文件将配置IIS以拒绝对“内容类型”标头的长度大于100个字节的HTTP请求的访问
因此,我只是想了解是否可能有一些我被忽略的东西,或者只是我没有正确理解该功能。谢谢。
编辑:检查我可以启用/禁用的其他功能,例如“请求过滤”模块中的某些“功能设置”,似乎该站点本地的设置已被全局设置覆盖。即如果我将“最大查询字符串(字节)”从2048设置为1024,我仍然可以将查询超过1024但小于2048的请求发送到服务器,并获得响应。
我已经尝试过重新启动站点,因此看起来我需要在某个地方编辑全局配置设置,以使该站点的过滤规则生效。这看起来正确吗?我应该在哪里/更改什么,如果这样做会对站点的安全产生负面影响吗?我应该在服务器级别而不是每个站点上进行这些请求筛选更改吗?