“中国要复兴、富强,必须在开源软件领域起到主导作用,为了国家安全和人类发展,责无旁贷,我们须为此而奋斗”——By:云客
1、去除Drupal特征
可选去除首部产生器标签:
<meta name="Generator" content="Drupal 8 (https://www.drupal.org)" />
是在core/modules/system/system.module:system_page_attachments函数中设置,因此对应去除
可选去除http响应头:
服务名:response_generator_subscriber
执行方法:onRespond
优先级:0-2
只作用于主请求,在响应头中设置系统标志标签,值为:
X-Generator:'Drupal $version (https://www.drupal.org)'
通过该响应头可以看出网站使用了drupal系统,是一种宣传手段,没有什么实际用途,该服务定义在此文件中:core/core.services.yml,如果不需要可以进行服务覆写,也可以在事件派发器中移除该订阅器
可选去除特殊文件:
http://www.dp9.com/core/CHANGELOG.txt
2、上传文件名处理:
配置项:
\Drupal::config('system.file')->get('allow_insecure_uploads')
默认为false,应该保持默认值,如果为true,则上传的文件名不会被处理,有可能出现安全问题,有些服务器(比如Apache)在处理文件链接时,遇到不能识别的扩展名,会回退使用前面的扩展名,比如请求文件yunke.php.pps时,不能识别pps,那么将扩展名视为php,因此文件会被当做php文件执行,这导致了安全漏洞,因此文件上传后需要对文件名进行特殊检查处理,drupal使用以下函数来干这件事:
file_munge_filename($filename, $extensions, $alerts = TRUE)
以上配置项影响该函数行为
交流互动