插件文件夹应包含空白的index.php文件吗?


16

WordPress本身在该wp-content文件夹中包含一个空的PHP文件,看起来像这样。

<?php
// Silence is golden.
?>

插件是否还应该包括这样的空文件,以阻止人们查看目录的内容?主题中的其他文件夹(例如includes目录)呢?


1
是的,这可能是个好主意。从来不明白为什么Options –Indexes捆绑的htaccess 中没有WP ,所以这些文件不是必需的……
onetrickpony 2012年

Answers:


17

不,他们不应该。如果某个插件仅由于某人可能看到其目录结构而具有漏洞,则该插件已损坏。这些错误应予以修复。
默默无闻的安全性本身就是一个错误。

允许或禁止目录浏览由网站所有者决定。

第二个问题是性能:WordPress 扫描插件根目录中的所有PHP文件以查找插件头。这使您可以在同一目录下拥有多个插件,例如/wp-content/plugins/wpse-examples/

这也意味着当WordPress搜索插件时,该目录中未使用的PHP文件浪费了时间和内存。一个文件不会造成太大的伤害,但是可以想象这正在成为一种常见的做法。您正在解决一个虚构的问题,这是一个真正的问题。


2
“由网站所有者决定是允许还是禁止目录浏览。” 这可能是关键点。
chrisguitarguy 2012年

我的主要问题是,为什么不编写主插件文件index.php?可能是最佳的解决方法
T.Todua

10

我要说是。如果您比邻居更晦涩难懂,则通过隐蔽性进行安全保护是可行的(开玩笑,但这有些道理)。

现实情况是,僵尸程序/扫描程序现在可以直接在wordpress.org上编译插件列表,并直接抓取插件的URL,为已知漏洞利用指纹版本,并将信息保存在数据库中以供参考。

因此,您希望拥有一个机器人,它使机器人无法收集有关您的安装的信息,或者将其交给插件作者来确保您的安全。两者都怎么样。

ps。附带说明,去年wordpress.org插件报告了186个漏洞。(*已报告。)。


1
漏洞扫描程序不会测试插件是否存在。他们尝试在第一个请求期间运行漏洞利用程序。空的index.php东西不会保护任何东西,您只会得到错误的安全感。
fuxia

但是他们确实做到了,例如,wp扫描(超过2200个)插件的指纹,并使用一些不错的指纹来检测版本(文件大小,文件添加等)。
Wyck

我已经清理了数十个被黑的WordPress网站。几乎总是第一个请求是一次真正的攻击。那是合理的:如果可以在第一个请求中测试漏洞,为什么要浪费时间进行详细扫描?跟踪您的404进行查看。:)
fuxia

1
我同意,这应该取决于最终用户,而不是作者。但是我也不认为这很痛。因为您说“不”,所以我只想添加一个对策。
Wyck

1
由于评论辩论,因此将此人标记为接受!
chrisguitarguy 2012年

1

由于WordPress核心确实可以做到这一点,因此插件也可以效仿。虽然所有这些都可以通过各种服务器端设置进行保护,但拥有默认值也无济于事(可能是WordPress核心这么做的原因)。


0

正如fuxia指出的那样,在.phpWordPress 中有一个额外的文件来扫描插件会存在性能缺陷。一个index.html可能是一个更好的选择。当然,最好的选择是禁止通过Web服务器进行目录浏览。

而且,通过模糊性实现安全性也不是一件好事。

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.