应显式限制仅允许GET、HEAD、POST等必需HTTP方法,通过配置白名单并设Require all denied,禁用TRACE等高危方法,全局启用TraceEnable off,API场景按需在中单独放行。

Apache 默认允许 GET、HEAD、POST 等标准 HTTP 方法,但像 PUT、DELETE、TRACE、OPTIONS、CONNECT 等非标准或高风险方法,若未主动启用,可能被误用(如 WebDAV 暴露、HTTP 方法绕过、信息探测等)。生产环境中应显式限制仅允许业务必需的方法,这是基础安全加固措施。
限制非标准 HTTP 请求方法的配置方式
Apache 提供了 <limit></limit> 和 <limitexcept></limitexcept> 指令(在 2.4 版本中已统一为 <limit></limit> 和 <limitexcept></limitexcept>,且推荐使用后者),配合 Require 指令实现细粒度控制。关键不是“禁止某个方法”,而是只允许明确需要的方法。
在虚拟主机或目录配置块中添加如下内容:
<Directory "/var/www/html">
# 只允许 GET、HEAD、POST(常见静态站所需)
<LimitExcept GET HEAD POST>
Require all denied
</LimitExcept>
</Directory>✅ 效果:除
GET(获取资源)、HEAD(获取响应头)、POST(表单提交)外,所有其他方法(如PUT、DELETE、TRACE、OPTIONS)均返回403 Forbidden。
补充说明与注意事项
<limitexcept></limitexcept>是白名单逻辑,比逐个<limit></limit>黑名单更可靠,避免遗漏新增方法(如 HTTP/2 的PRI或未来扩展方法);若网站含简单表单提交(如搜索、留言),保留
POST;若纯静态无交互,可进一步收紧为仅GET HEAD;
Apache Superset Dashboard and SQL Exploration Skill下载Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
-
TRACE方法尤其需禁用,因易被用于跨站追踪(XST)攻击。即使未显式配置,也可通过以下全局方式额外封堵:TraceEnable off
该指令必须放在主配置(如
httpd.conf全局上下文)中,不能在<directory></directory>内使用。 对于 API 或后端代理场景(如反向代理到 Node.js/Python 服务),若确实需要
PUT/DELETE,应在对应<location></location>或<proxy></proxy>块中单独放行,而非开放整个站点。
验证是否生效
终端执行测试命令(替换为你的服务器地址):
curl -X PUT http://your-server.com/test.html -I curl -X TRACE http://your-server.com/ -I
预期响应状态码应为 403 Forbidden,而非 200 或 405 Method Not Allowed(后者表示方法被识别但未实现,仍存在信息泄露风险)。
不复杂但容易忽略

















