使用Drupal9二次开发的网站,上传到阿里云虚拟主机,安装成功后,白龙网发现,在“管理->报告->状态报告”页面显示一条“信任主机设置未启用”的错误报告:settings.php中的trusted_host_patterns设置未配置。这可能导致安全漏洞。强烈建议您配置此项。更多详情请参见防止HTTP_HOST头攻击。
一、根据drupal9系统的提示,在阿里云虚拟主机\htdocs\sites\default\目录中下载settings.php配置文件到本地,并找到信任主机设置的相关说明:
/** * Trusted host configuration. * * Drupal core can use the Symfony trusted host mechanism to prevent HTTP Host * header spoofing. * * To enable the trusted host mechanism, you enable your allowable hosts * in $settings['trusted_host_patterns']. This should be an array of regular * expression patterns, without delimiters, representing the hosts you would * like to allow. * * For example: * @code * $settings['trusted_host_patterns'] = [ * '^www\.example\.com$', * ]; * @endcode * will allow the site to only run from www.example.com. * * If you are running multisite, or if you are running your site from * different domain names (eg, you don't redirect http://www.example.com to * http://example.com), you should specify all of the host patterns that are * allowed by your site. * * For example: * @code * $settings['trusted_host_patterns'] = [ * '^example\.com$', * '^.+\.example\.com$', * '^example\.org$', * '^.+\.example\.org$', * ]; * @endcode * will allow the site to run off of all variants of example.com and * example.org, with all subdomains included. */
二、参考信任主机的注释,在本地settings.php文件的末尾添加如下代码,并使用FTP上传该文件到阿里云虚拟机\htdocs\sites\default\settings.php:
$settings['trusted_host_patterns'] = [ '^www\.bailong\.org\.cn$', ];
需要说明的是,白龙网的域名作了重定向:从bailong.org.cn重定向到了www.bailong.org.cn,因此,只需要按照上述格式,配置域名www.bailong.org.cn即可。
1.当FTP提示上传失败时,检查FTP目录\htdocs\sites\及其子目录权限,发现该目录及其子目录没有“写入”权限;需要说明的是,在FTP中给site目录及其子目录授予“读/写”权限,一直无效;
2.然后,登陆阿里云主机管理控制台,在“文件夹管理->文件夹管理器”中找到并给予site目录及其子目录“读/写”的权限;同时,删除阿里云虚拟机中的\htdocs\sites\default\settings.php文件;
3.通过FTP上传本地配置好的settings.php文件至阿里云虚拟机\htdocs\sites\default\目录下;
三、经过上述操作,在drupal后台“管理->报告->状态报告”页面刷新之后,显示“信任主机已启用”:
Enabled The trusted_host_patterns setting is set to allow ^www\.bailong\.org\.cn$
至此,在阿里云虚拟主机上出现的drupal“信任主机设置未启用”的问题就彻底解决了。白龙网认为,如果有多个域名,并且没有作重定向配置,则可以根据信任主机注释说明,按照要求的格式,把相关域名添加到settings.php即可。