5

人気のあるWordpressプラグインを作成しましたが、機能しないという苦情がたくさんあります. 多くのユーザーのWP Webサイトにログインした後(管理者パスワードを要求した後)、簡単に解決できない最後の問題は、mod_securityとmod_security2が一部のAJAXリクエストまたは.htaccessをブロックし、一部の構成で500エラーを引き起こしていることに気付きました。

まず第一に、このコードが原因で一部のサーバーが 500 エラーを返すのはなぜですか

<IfModule mod_security2.c>
  SecRuleRemoveById 300015
  SecRuleRemoveById 300016
  SecRuleRemoveById 300017
  SecRuleRemoveById 950907
  SecRuleRemoveById 950005
  SecRuleRemoveById 950006
  SecRuleRemoveById 960008
  SecRuleRemoveById 960011
  SecRuleRemoveById 960904
  SecRuleRemoveById phpids-17
  SecRuleRemoveById phpids-20
  SecRuleRemoveById phpids-21
  SecRuleRemoveById phpids-30
  SecRuleRemoveById phpids-61

他のサーバーでは、このように ID でルールを削除すると 500 エラーが発生します:

<IfModule mod_security.c>
  SecRuleRemoveById 300015
  ...
  SecRuleRemoveById phpids-61
</IfModule>

したがって、今のところ、サーバーのクラッシュを引き起こしていない唯一の機能は

<IfModule mod_security.c>
  SecFilterEngine Off
  SecFilterScanPOST Off
</IfModule>

しかし、 mod_security2 を備えたサーバーには十分ではありません!

クロスサーバー .htaccess ファイルを作成する方法と、mod_security と mod_security2 が適用される場所で無効にし、他の構成で 500 エラーが発生しないようにするには、どの IF 条件を追加する必要がありますか?

編集:Apacheだけではありません。.htaccess が使用されている場所。

4

2 に答える 2

0

サーバー管理者に連絡するように伝えるメッセージを表示するのは、最後に行うことです。まず、自動構成作成のために次のソリューションのいずれかを試します。

サブフォルダーに 2 ~ 3 個のサンドボックス化された .htaccess 構成を作成します

  1. プラグインのアクティブ化テスト中に、シミュレートされたリモート AJAX テストを使用して構成を 1 つずつテストします。
  2. 最適な一般設定構成サブフォルダーから開始します
  3. AJAX プロキシ スクリプトの呼び出しと、このフォルダー内のイメージ、スタイルなどのファイルへのアクセスを確認します。
  4. 成功した (ブロックを解除し、クラッシュしていない) 構成を見つけたら、選択した .htaccess ファイルを AJAX プロキシ PHP ファイルを含むフォルダーに保存します。
  5. 構成 (または組み込みの wordpress AJAX スクリプト - 信頼性が低い) のいずれも機能しない場合、サーバー管理者に連絡して、指定されたフォルダーの htaccess を許可するように指示するエラーが表示されます。

また

  1. ロードされたモジュールを PHP で確認する
  2. 基本的な mod_security のクラッシュを防ぐために mod_security2 が存在する場合にのみ SecRuleRemoveById id を追加します
于 2013-10-11T16:15:24.190 に答える