GNU/Linux >> Linux の 問題 >  >> Linux

エラーを修正する方法– ModSecurity:コード44でアクセスが拒否されました[Apache]

質問: MediaWikiにサイズ2MBのPDFファイルをアップロードしようとして、500内部サーバーエラーが発生しました このエラーは、大きなファイルをアップロードするたびに発生するようです。 php.iniをすばやく確認しました 、以下の値がありました:

upload_max_filesize = 32M
post_max_size = 20M

以下はhttpdのスナップショットです error_log。

ModSecurity: Access denied with code 44 (phase 2). Match of "eq 0" against "MULTIPART_UNMATCHED_BOUNDARY" required.

私はApacheとMediaWikiバージョン1.23を使用しています。

解決策:

ファイルの最大アップロードサイズとPOSTサイズは、 php.iniを介して2つの方法で制御できます。 およびmod_security 拡張機能。

以下に示すように、Webサーバーがmod_security拡張機能で有効になっているかどうかを確認します。

# apachectl -M |grep security

modsecurity.dを探すこともできます / etc / httpdの下のフォルダ およびmod_security.conf /etc/httpd/conf.d/のファイル 。 (Apacheのインストールパスはシステムによって異なる場合があります)。

注: デフォルトでは、mod_securityはApacheで有効になっており、推奨される構成もいくつかロードされます。

/etc/httpd/conf.d/mod_security.confを開きます 次の行をファイルして探します:

SecRuleEngine On

SecRuleEngineをオフにすることができます (SecRuleEngineオフ)または SecRequestBodyLimitの値を調整します およびSecRequestBodyNoFilesLimit

警告 :mod_securityは、SQLインジェクション、クロスサイトスクリプティング攻撃、セッションハイジャック、悪意のあるユーザーエージェント、その他の悪意のあるボットを防ぐWebアプリケーションファイアウォールであるため、無効にすることはお勧めできません。代わりに、以下の変数を調整してください。

SecRequestBodyLimit 13107200          #12.5 MB
SecRequestBodyNoFilesLimit 131072  #128kb

完了したら、ApacheWebサーバーを再起動する必要があります

# /etc/init.d/httpd restart

共有ウェブホスティングを使用していて、ウェブサーバーを再起動するための管理者権限がない場合は、 .htaccessを作成できます。 以下に示すようにファイルします。

#.htaccessファイルを使用してSecRuleEngineをオフにする

<IfModule mod_security.c>
 <Files async-upload.php>
 SecFilterEngine Off
 SecFilterScanPOST Off
 </Files>
 </IfModule>

上記のスニペットはasync-upload.phpになります。以上です!


Linux
  1. 「ホストキーの検証に失敗しました」というエラーを修正する方法

  2. 特定のパターンで最新のログ ファイルを末尾に -f する方法

  3. tr コマンド - 文字列 \n を実際の改行 (\n) に置き換える方法

  1. 「エラー:警告:ffprobeでファイルオーディオコーデックを取得できません」を修正するにはどうすればよいですか? [解決済み]

  2. エラーが発生した場合、gdb はコマンド ファイルで停止します。エラーにもかかわらず続行する方法は?

  3. 「tar」コマンドと「find」コマンドを組み合わせる方法

  1. Windowsを修正する方法は、PassSpecializeの無人応答ファイルを解析または処理できませんでした

  2. Metasploitエラーを修正する方法–バンドラーgemをインストールする必要がありますか? [解決済み]

  3. 最大のファイル記述子を持つプロセスを見つける方法は?