web-dev-qa-db-ja.com

非公開のファイルを非表示にしてWordPressのセキュリティを向上させる方法

例えば.

curl -I http://ma.tt/blog/wp-config.php
200 OK

Wp-config.phpは現在白紙のページを返すだけなので、一般向けのファイルではありません。代わりに404を返さないでください。 (だからGoogleによってキャッシュされません)

また、readme.htmlのようなファイルの場合、それはあなたのワードプレスのバージョンを開示するので隠されるべきです。 http://ma.tt/blog/readme.html

そのため、現在私はいくつかのファイルを選択し、Webサーバーレベルでブロックしています。

wp-config.php
wp-config-sample.php
license.txt
readme.html
 ..

しかし、特にwp-adminおよびwp-includeフォルダーの下に非常に多くのファイルがあるので、セキュリティーを向上させるためにそれを行うためのより良い方法はありますか?

1
Yoga

おそらくサイトに侵入しようとする前にあなたのWPバージョンをチェックしようとするハッカーはいらないので、私はreadmeファイルには迷惑をかけません。/wp-includesや/ wp-adminには何も気にしないでください。私はデフォルトのインストールでそのコードを安全にするためにコアチームを信頼しています。

保護するファイルはwp-config.phpです。なぜなら、テーマやプラグイン開発者はセキュリティがあまり得意ではないからです。これにはDBアクセスの詳細と/ wp-contentディレクトリが含まれています。 wp-configのためだけにあなたの.htaccessでアクセスを拒否する

<files wp-config.php>
order allow,deny
deny from all
</files>

/ wp-content/pluginsおよび/ wp-content/themeでは、以下の内容の.htaccessを追加することによって、animage、js、またはcssファイル以外のものへのアクセスを拒否します。プラグインやテーマがこの設定でうまくいかない場合、おそらくWPコーディングガイドラインに従わないので、それらを使わない方が良いかもしれません。

<Files ^(*.jpeg|*.jpg|*.png|*.gif|*.js|*.css)>
   order deny,allow
   deny from all
</Files>

/ wp-content/uploadsの場合、どの種類のファイルがそこにアップロードされるのかわからないのでアクセスを拒否することはできません。そのためにするべき最もよいことは単にphp、Perl、pytonの実行を許可しないことです。そのディレクトリにアクセスし、次の規則に従ってプレーンテキストとしてそれらを提供します。

<FilesMatch "\.(php|pl|py|jsp|asp|htm|shtml|sh|cgi)$">
ForceType text/plain
</FilesMatch>

あなたが満足したら、おそらくあなたはより良いパフォーマンスのためにrootで一つの.htaccessにすべてを結合するべきです

5
Mark Kaplun

あなたがwp-adminの下でファイルをブロックするならば、最初の訂正、あなたはwordpress管理者パネルを使うことができないでしょう。あなたは "wp-admin/includes"フォルダの下のファイルをブロックすることができますが

今解決策: -
すべての名前を入力する必要はなく、正規表現を使用してファイルのパターンをブロックすることができます。 wp-includesフォルダにあるすべてのファイルをブロックするための正規表現を書くのは簡単です。

同じワードプレスディレクトリに他のファイルがない場合は、特定のファイルをブロックするのではなく、ホワイトリストのアプローチ、つまり特定のファイルのみを許可する方法に進むことができます。具体的には、wp-adminとwp-contentフォルダの中にあるファイルと、もちろんメインのワードプレスファイル(index.php)だけを許可します。

テーマとプラグインが動的に生成されたファイルを使用していない場合は、wp-admin&index.phpを除いて、直接アクセスからすべてのphpファイルをブロックすることができます。

どのようなアプローチを取っても、phpファイルだけをブロックし、それ以外のものはブロックしないことを忘れないでください。

0
Mridul Aggarwal