質問: wp-configでfs_methodを "direct"に設定するときにどのようなセキュリティ上の問題がありますか? 手動インストールまたはワンクリックインストールオプションが利用できないため、wp smush proプラグインをインストールできないという問題が最近ありました。私は出会った この記事 wp-config.phpの設定を調整することを提案しました。提案された設定を追加しましたが、最も重要と思われる設定は次のとおりです。define('fs_method', 'direct');私が知りたいのは、fs_methodをdirectに設定する際に、実際にどのような懸念があるべきかということです。プラグインをインストールする他の方法はありますか?これは公式文書が言っていることです: fs_methodはファイルシステムメソッドを強制します。 "direct"、 "ssh2"、 "ftpext"、または "ftpsockets"のみです。一般に、アップデートの問題が発生している場合にのみこれを変更してください。それを変更しても解決しない場合は、元に戻す/削除します。ほとんどの場合、自動的に選択された方法でうまくいかない場合は、 'ftpsockets'に設定するとうまくいきます。 (主な設定) "direct"はphp内からのdirect file i/oリクエストを使うことを強制します。これは設定が適切でないホスト上でセキュリティ問題を開くことになります。
回答: リスクは何ですか?設定が不適切な共有ホストでは、すべての顧客のphpが同じユーザーとして実行されます(議論のためにapacheとしましょう)。この設定は驚くほど一般的です。あなたがそのようなホストにいて、直接ファイルアクセスを使ってプラグインをインストールするためにwordpressを使うならば、あなたのプラグインファイルのすべてはapacheに属します。あなたのプラグインファイルに悪意のあるコードを注入するphpスクリプトを書くことによって、同じサーバー上の正当なユーザーがあなたを攻撃することができるでしょう。彼らは自分のウェブサイトに自分のスクリプトをアップロードし、そのurlを要求します。自分のプラグインファイルを所有しているのと同じapacheとしてスクリプトが実行されるため、コードは危険にさらされています。fs_method 'direct'はそれとどんな関係がありますか?wordpressがファイル(プラグインなど)をインストールする必要があるときは、 get_filesystem_method() 関数を使用してファイルシステムへのアクセス方法を決定します。あなたがfs_methodを定義しないなら、それはあなたのためにデフォルトを選びます、さもなければそれは意味がある限りあなたの選択を使います。デフォルトの振る舞いは try になり、上記のような危険にさらされている環境にいるかどうかを検出し、安全だと思われる場合は'direct'メソッドを使用します。この場合wordpressはphpを通して直接ファイルを作成し、それらをapacheユーザーに所属させます(この例では)。それ以外の場合は、sftp資格情報の入力を求めるプロンプトや自分でファイルを作成するなど、より安全な方法にフォールバックします。fs_method = 'direct'は、危険にさらされていることの検出を回避し、'direct'メソッドを使用してファイルを作成するようにalwaysにwordpressに要求します。それならなぜfs_method = 'direct'を使うのですか?残念ながら、危険な環境を検出するためのwordpressのロジックには欠陥があり、誤検知と誤検知の両方が発生します。おっとこのテストでは、ファイルを作成し、それが存在するディレクトリと同じ所有者に属していることを確認します。ユーザーが同じであれば、phpは自分のアカウントとして実行され、安全です。そのアカウントとしてプラグインをインストールします。異なる場合、wordpressはphpが共有アカウントとして実行されていると見なします。そのアカウントとしてプラグインをインストールするのは安全ではありません。残念なことに、これらの仮定の両方は、しばしば間違っているであろう教育的な推測です。このような誤検知のシナリオではdefine('fs_method', 'direct' );を使用します。あなたはメンバー全員が自分のアカウントを通してファイルをアップロードする信頼できるチームの一員です。 phpは、独自の独立したユーザーとして実行されます。 wordpressはこれが危険な環境であると想定し、デフォルトで'direct'モードにしません。実際には、信頼しているユーザーとのみ共有されているので、'direct'モードは安全です。この場合、wordpressに直接ファイルを書き込ませるためにはdefine('fs_method', 'direct' );を使うべきです。