首页 > 解决方案 > 如何在 Apache 2.4 中安全地允许对单个程序进行 PUT

问题描述

我正在使用 Magento(版本 2.2.5),我似乎需要允许对我的服务器(至少 Magento 程序)的 PUT 请求。

具体而言,在 Magento 上输入折扣代码时,结帐页面上的“501(未实施)”失败。但是,折扣代码部分在购物车页面中确实有效。区别似乎是购物车页面使用 GET 方法,而结帐页面使用 PUT 方法。

如何使 PUT 方法适用于 Magento?这是可以通过.htaccess 完成的吗?如果需要为整个服务器完成,是否存在允许 PUT 请求的安全风险?

我在某处看到这可能与 Apache 的“mod_security”有关。我是新手,我不想让服务器暴露于任何潜在的漏洞。

先感谢您。

标签: apache.htaccessmagento2putmod-security

解决方案


Apache 默认允许 PUT,但是有很多不同的方式来禁止这种方法。ModSecurity(通过自定义规则或核心规则集)就是其中之一。但是,ModSecurity 默认不使用状态码 501。虽然它可以定制,但我怀疑它。

在这条线下,如果不访问服务器的错误日志或与有权访问的人进行通信,我认为您无法解决这个谜团。


推荐阅读