作者:Roman Glushko
使特定版本的软件易于发现,使黑客的工作变得更容易,并允许自动化刮刀收集具有特定软件版本的URL数据库,这些软件版本可用于发现攻击的安全漏洞事件。当然,隐藏Magento版本不足以保护您的商店,但这只是一个简单的步骤,就像更改管理URL一样,使商店更安全一点。
在Magento 2中,Magento_Version模块允许通过GET请求检索Magento版本和版本。它由一个简单的控制器动作组成,具有以下路径:
1 | magento_version / index / index |
此操作获取所需信息并呈现它:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | # Magento\Version\Controller\Index\Index public function execute() { $versionParts = explode('.', $this->productMetadata->getVersion()); if (!isset($versionParts[0]) || !isset($versionParts[1])) { return ; // Major and minor version are not set - return empty response } $majorMinorVersion = $versionParts[0] . '.' . $versionParts[1]; $this->getResponse()->setBody( $this->productMetadata->getName() . '/' . $majorMinorVersion . ' (' . $this->productMetadata->getEdition() . ')' ); } |
要检查模块是否在您的商店中处于活动状态,请导航到上述路线:
1 | HTTP://base-url-of-your-store.com/magento_version |
如果模块处于活动状态,您将看到Magento 2实例的版本,如下例所示:
1 | Magento / 2.1(社区) |
平台的版本和类型等信息可以帮助黑客发现潜在的漏洞。这就是我们建议您在商店中停用此模块的原因。
为此,请通过SSH导航到Magento实例根目录并运行以下命令:
1 | php bin / magento module:禁用 Magento_Version |
您将获得以下内容:
1 2 3 4 5 6 | The following modules have been disabled: - Magento_Version Cache cleared successfully. Generated classes cleared successfully. Please run the 'setup:di:compile' command to generate classes. Info: Some modules might require static view files to be cleared. To do this, run 'module:disable' with the --clear-static-content option to clear them. |
现在检查结果。转到URL:
1 | HTTP://base-url-of-your-store.com/magento_version |
如果一切正确,您将获得404页面,这对我们有益:
通过这种简单的方式,我们不会为潜在的黑客泄露太多关于商店的信息,并使网站更安全。