当前位置: 首页>>技术问答>>正文


阻止访问或auto-delete readme.html,license.txt,wp-config-sample.php

webfans 技术问答 , , 去评论

问题描述

只是一个可能有助于安全性的快速问题。我注意到readme.html文件列出了版本号。它在每次升级后重新出现,licence.txt和wp-config-sample.php也是如此。

是否有一种简单的方法让WordPress在升级后自动删除这些文件?

我已经阻止了在meta标签,rss feed,atom等中显示的版本号。

我知道这种类型的安全性并不是那么有用,但只是认为它可能是一个小小的开始。我听说人们可以简单地检查WP-includes中包含的jQuery版本,并交叉引用哪个版本的WP发布它。

最佳解决办法

您实际上不需要删除这些文件。阻止访问它们要容易得多。如果您使用漂亮的URL,则您已经拥有.htaccess文件。使用.htaccess来阻止文件是安全的,你只需要添加一次指令。

阻止文件是通过向.htaccess添加指令来完成的,如下所示:

    <files filename.file-extension>
         order allow,deny
         deny from all
    </files>

所以,要阻止readme.html你这样做:

    <files readme.html>
         order allow,deny
         deny from all
    </files>

对许可文件或您希望阻止任何人访问的任何其他文件执行相同操作。只需在记事本或任何其他基本文本编辑器中打开.htaccess,添加指令并保存,确保文本编辑器完全保留文件名 – 最后没有任何.txt。

次佳解决办法

这是我的看法:

RewriteRule (?:readme|license|changelog|-config|-sample)\.(?:php|md|txt|html?) - [R=404,NC,L]
  • 404(不存在)而不是403(禁止)以避免任何关于存在的线索。

  • 也在子文件夹(即主题和插件,可能提供攻击机会)

  • 大小写敏感,extension-flexible,也可以访问README.html或license.html(随意添加像changelogs这样的典型嫌疑人| faq | contributions)

就个人而言,我也会阻止:

RewriteRule \.(?:psd|log|cmd|exe|bat|c?sh)$ - [NC,F]

注意:

  • ‘?:’只是将括号声明为non-matching(不重要)。

  • 要求RewriteEngine为on(很可能是。在没有…的情况下使用wordpress是很少见的(丑陋的永久链接等等))。

  • 插入.htaccess中的# BEGIN WordPress部分之前

第三种解决办法

add_action('core_upgrade_preamble','my_function_to_delete_files');

编辑:你也可以尝试这些

add_action('upgrader_pre_install','my_function_to_delete_files');
add_action('upgrader_post_install','my_function_to_delete_files');

参考资料

本文由朵颐IT整理自网络, 文章地址: https://duoyit.com/article/2709.html,转载请务必附带本地址声明。