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

迁移期间如何在IIS 8.5或web.config中阻止非GET请求?

在IIS 8.5上仅允许GET请求的实现方案

完全可以在IIS 8.5或web.config层面实现拦截非GET请求的需求,以下是几种实用的方案:

方案一:通过URL重写模块拦截非GET请求

如果你的服务器安装了IIS URL重写模块(可通过服务器管理器添加),可以直接在web.config中添加规则,拦截所有非GET请求并返回明确的错误状态码:

<system.webServer>
  <rewrite>
    <rules>
      <rule name="Block Non-GET Requests" stopProcessing="true">
        <match url=".*" />
        <conditions>
          <add input="{REQUEST_METHOD}" pattern="^GET$" negate="true" />
        </conditions>
        <action type="CustomResponse" statusCode="405" statusReason="Method Not Allowed" statusDescription="Only GET requests are permitted during migration." />
      </rule>
    </rules>
  </rewrite>
</system.webServer>

这个规则会匹配所有请求路径,当请求方法不是GET时,立即返回405状态码,清晰告知调用方当前仅允许GET请求。

方案二:利用IIS请求筛选模块限制HTTP谓词

请求筛选是IIS自带的安全功能,不需要额外安装模块,既可以通过web.config配置,也能通过IIS图形界面操作:

1. web.config配置方式

直接在站点的web.config中添加以下配置,明确允许GET,拒绝POST、PUT、DELETE等方法:

<system.webServer>
  <security>
    <requestFiltering>
      <verbs applyToWebDAV="false">
        <add verb="GET" allowed="true" />
        <add verb="POST" allowed="false" />
        <add verb="PUT" allowed="false" />
        <add verb="DELETE" allowed="false" />
        <!-- 如有需要,可继续添加PATCH等其他需阻止的HTTP方法 -->
      </verbs>
    </requestFiltering>
  </security>
</system.webServer>

applyToWebDAV="false"参数用于避免规则影响WebDAV请求(未启用WebDAV的话也可保留)。

2. IIS图形界面操作步骤

  • 打开IIS管理器,定位到你的API站点。
  • 双击功能视图中的请求筛选。
  • 在右侧操作栏点击HTTP谓词。
  • 选择允许谓词,输入GET后确认,此时所有未被允许的谓词都会被自动拒绝;或者选择拒绝谓词,逐个添加POST、PUT、DELETE等需要拦截的方法。
  • 点击右侧的应用保存配置即可生效。

注意事项

  • 若使用URL重写方案,需确保服务器已安装URL重写模块,未安装的话可通过服务器管理器的Web服务器角色功能添加。
  • 配置完成后建议用Postman、curl等工具测试非GET请求,确认是否返回预期的405或403状态码。
  • 迁移完成后,务必及时移除这些规则,恢复正常的请求方法权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 14:45:13