You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过IIS请求筛选阻止特定WebMethod的访问?

解决IIS中阻止特定POST请求WebMethod的问题

问题分析

你尝试用请求筛选的denyUrl和hiddenSegment规则无效,并非因为这两个规则只针对GET请求——它们默认对所有HTTP动词生效。无效的原因可能是:

  • hiddenSegment仅作用于独立的目录路径段,而WebMethodToBlock是.asmx服务的路径后缀,不属于独立目录,因此规则不匹配。
  • denyUrl规则的匹配模式或动词范围配置不正确,导致POST请求未被拦截。

可行解决方案(无需安装URLRewrite)

1. 修正请求筛选的denyUrl规则配置

打开IIS管理器,定位到目标站点:

  • 进入请求筛选→URL选项卡,点击添加拒绝规则。
  • 在“URL”输入框中填写精确路径:/webService.asmx/WebMethodToBlock。
  • 确认“动词”选择所有动词(确保包含POST),点击确定保存。
  • 若精确匹配不生效,可尝试通配符模式:*/webService.asmx/WebMethodToBlock,或正则模式:.*webService\.asmx/WebMethodToBlock(需勾选“使用正则表达式”)。

2. 通过web.config配置HttpHandler拦截

若请求筛选仍不生效,可修改站点的web.config文件(无需修改业务代码),添加内置的NotFoundHandler拦截目标请求:
在<system.webServer>节点下插入以下配置:

<handlers>
  <add 
    name="BlockTargetWebMethod" 
    path="/webService.asmx/WebMethodToBlock" 
    verb="POST" 
    type="System.Web.HttpNotFoundHandler" 
    preCondition="integratedMode" 
  />
</handlers>

该配置会让匹配的POST请求直接返回404状态码,达到阻止访问的效果。

3. 验证规则生效

配置完成后,重新发起POST请求测试,查看IIS日志:若返回状态码为403(请求筛选拦截)或404(Handler拦截),则规则生效。

内容的提问来源于stack exchange,提问作者El Ronnoco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 07:50:27