禁止访问或自动删除readme.html,license.txt,wp-config-sample.php


13

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

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

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

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

Answers:


19

您实际上并不需要删除这些文件。阻止访问它们会容易得多。如果您使用的是漂亮的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。


1
这实际上是我最终选择的选项。它运作完美。
萨哈斯·卡塔

1
注意,以上语法仅在Apache 2.2之前有效!之后,将其用于Require all denied(替换内部的2行)用于Apache 2.4及更高版本。更多详细信息在这里
弗兰克Nocke

5

这是我的看法:

RewriteRule (?:readme|license|changelog|-config|-sample)\.(?:php|md|txt|html?) - [R=404,NC,L]
  • 404(不存在)而不是403(禁止),以避免任何有关存在的线索。
  • 也在子文件夹中(即主题和插件,可能会提供攻击机会)
  • 不区分大小写,灵活扩展,也可以捕获README.html或license.html(随意添加典型的可疑对象,例如changelogs | faq | contributing)

就个人而言,我还将阻止:

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

nb:

  • '?:'仅声明括号不匹配(不重要)。
  • 要求RewriteEngine是on(很可能是这样。很少使用wordpress而不使用...(难看的永久链接等))。
  • 在.htaccess中的该部分之前插入# BEGIN WordPress

3
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');

谢谢,我想通了php取消链接功能,它可以工作,但是有一个问题。您提供的钩子似乎只是通过访问仪表板下的“更新”部分来执行的。升级后是否还有其他挂钩?
萨哈斯·卡塔

1
生病的样子,让您知道
Atif Mohammed Ameenuddin 2010年

@Sahas @ atif089您设法使它起作用了吗?
INT

您可以在函数中使用它,而不是删除(以防您想真正阅读自述文件!)chmod("/path/to/readme.txt", 0640);
Bysander
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.