web-dev-qa-db-ja.com

ワードプレスの強化:WPコンテンツファイルのアクセス許可

私は自動的にサーバー上のすべてのワードプレスのインストールでファイルのアクセス許可を確認するためのスクリプトを書いています。

この文書 http://codex.wordpress.org/Hardening_WordPress は、ある時点では不明瞭です。

/ wp-content /

ユーザー提供のコンテンツ:ユーザーアカウントおよびWebサーバープロセスによって書き込み可能にすることを目的としています。/wp-content /の中には、

/ wp-content/themes /

テーマファイル組み込みのテーマエディタを使用する場合は、すべてのファイルがWebサーバープロセスによって書き込み可能である必要があります。組み込みのテーマエディタを使用したくない場合は、すべてのファイルを自分のユーザアカウントでのみ書き込み可能にすることができます。

/ wp-content/plugins /

プラグインファイル:すべてのファイルはあなたのユーザーアカウントによってのみ書き込み可能であるべきです。

上記の文書は(すべての文脈において)正しく完全なものですか?信頼できますか?

もしそうなら、それは何を言いますか:

  • onlyディレクトリwp-content自体がユーザーとWebサーバーの両方に書き込み可能
  • insidewp-contentはプラグインとオプションのテーマを除いて両方に書き込み可能ですか?

私はそれが最初のことを言うと思います..しかしアップロードフォルダは言及されていません、そしてそれは確かに、ウェブサーバーによって書き込み可能であるべきですか?

編集:質問を少し言い換えました

1
commonpike

これにはいくつかの側面があります。それが理想的にはが実質的に、そして通常が実質的にであるべきものです。

WordPressでファイルを書くことへの2つのコンテキストがあります。

PHPでやってください

ここで最も困難なシナリオは、uploadsのみが書き込み可能であるということです。さもなければ中心的な機能性は壊れ始めます。

しかし、プラグインはそれとあいまいになり、すべてのwp-contentが書き込み可能であると想定するかもしれません。

ファイルシステムAPI

これは適切な書き込み方法ですが、それが必要な場合はFTP認証情報を要求するため、エンドユーザーにとっても困難です。

これはすべてを書くことができる必要があります、または(再び)コア機能性はより大きく、そしてより大きな方法で壊れます(更新など)。

要約すると、

  1. アップロードのみがPHP経由で書き込み可能であるべきです
  2. 残りのコンテンツフォルダが書き込み可能でない場合、サードパーティのコードが失敗する可能性があります
  3. ファイルシステムAPIは、WPの観点から読み取り専用ファイルシステムのポイントまで厳しくロックしたくなければ、何でもできるはずです(いくつかの設定はそのように動作します)。
1
Rarst
chgrp www-data .htaccess
chmod a-wx .htaccess

WordPressは、ある時点で.htaccessにルールを記述する必要があります。通常は、URLがどのように表示され、書き直されるかを処理するためです。 www-dataグループには書き込みアクセス権が必要な場合があります。

0
Flugan

これはどうしたらよいでしょうか。

# you own everything
chown -R [user].[user] * .htaccess

# others and group may not write anywhere
chmod -R og-w *

# execute permissions on dirs only
chmod -R a-x *
chmod -R a+X *

# webserver co-owns htaccess
chgrp www-data .htaccess
chmod a-wx .htaccess
chmod u+w .htaccess

# webserver co-owns wp-content and below
chgrp -R www-data wp-content

# webserver may write in wp-content itself
chmod g+w wp-content


# webserver may write in and below uploads
chmod -R g+w wp-content/uploads


# ------------
# custom exceptions below this
# ------------

# webserver may write in htaccess (optional)
# chmod g+w .htaccess

# webserver may write in and below themes (optional)
# chmod -R g+w wp-content/themes
0
commonpike