web-dev-qa-db-ja.com

プラグインフォルダに空白のindex.phpファイルを含む必要がありますか?

WordPress自体のwp-contentフォルダには、このような空のPHPファイルが含まれています。

<?php
// Silence is golden.
?>

人々がディレクトリの内容を見るのを止めるために、プラグインはこのような空のファイルを含むべきですか? includesディレクトリのように、テーマ内の追加フォルダはどうでしょうか。

14
chrisguitarguy

私はそう言うつもりです。あなたがあなたの隣人よりもあいまいであるならば、あいまいさによる安全は働きます:)(冗談ですが、それに若干の真実があります)。

実際のところ、ボット/スキャナーはwordpress.orgから直接プラグインリストをコンパイルし、既知のエクスプロイトのためにバージョンをフィンガープリントして直接プラグインのURLをクロールし、参照用にデータベースに情報を保存します。

ですから、どちらをインストールするかについてボットが情報を集めることができないか、安全であることを確認するためにそれをプラグイン作成者に任せることができません。どちらもどうですか。

ps。ちなみに昨年はwordpress.orgプラグインから186の報告されたエクスプロイトがありました。

8
Wyck

いいえ、そうしてはいけません。誰かがそのディレクトリ構造を見ているかもしれないという理由だけでプラグインが脆弱性を持っているなら、それは壊れています。 Theseバグは修正されるべきです。
曖昧さによるセキュリティ それ自体がバグです。

ディレクトリの参照を許可または禁止するのはサイトの所有者次第です。

2つ目の問題はパフォーマンスです。WordPress は、プラグインのルートディレクトリにあるすべてのPHPファイルをスキャンして、プラグインヘッダーを見つけます。これにより、/wp-content/plugins/wpse-examples/のように同じディレクトリに複数のプラグインを持つことができます。

また、WordPressがプラグインを検索しているとき、そのディレクトリ内の未使用のPHPファイルが時間とメモリを浪費していることも意味します。 1つのファイルではそれほど害はありませんが、これが一般的な方法になっていると想像してください。あなたは架空のものを直そうとして本当の問題を引き起こしています。

17
fuxia

WordPressコアがこれを行うので、これはプラグインがそれに従うのが理にかなっています。これらすべてをさまざまなサーバー側設定で保護することができますが、デフォルトを設定しても問題ありません(おそらくWordPressコアがそれを行う理由)。

1
BFTrick

Fuxiaが指摘したように、WordPressがプラグインをスキャンするための余分な.phpファイルを持つことにはパフォーマンス上の欠点があります。 index.htmlはおそらくより良い選択肢でしょう。もちろん、最良の選択肢は、Webサーバーを介したディレクトリ参照を禁止することです。

そしてまた、 あいまいさによるセキュリティは良くありません。

0
Alex H