どうして起こる"suexecポリシー違反"がPerlはサーバ側のを含みますか。
質問
うPerlスクリプトと呼ばれるサーバからの側面を含めておりまApache2サーバーです。のスクリプトを表示する汎用の"内部サーバエラー"のページではなくを提供させて頂いて、実際のエラーになります。私はチェックをApacheのエラーログには、これらのメッセージ:
unable to include "/foobar/index.pl" in parsed file /home/foouser/domains/foosite.com/public_html/foobar/index.shtml, referer: http://www.foosite.com/foobar/
suexec policy violation: see suexec log for more details, referer: http://www.foosite.com/foobar/
Premature end of script headers: settings.pl, referer: http://www.foosite.com/foobar/
の行き方を教えてくださいPerlスクリプトにエラーではなく"Internal Server Error"?
更新:
った別の問題のためのこってしまうこ は 送信エラーをブラウザの(コブライアン):
use CGI::Carp qw(fatalsToBrowser);
しかし、それでも問題が改善しない場合は、Apache configではなく、Perlスクリプトのエラーはブラウザに送信されますが、Perlのコードでない解釈するのかというこの場合、いい経験は、ApacheのエラーにはPerlの誤り)がこの線:
suexec policy violation: see suexec log for more details
を起こす可能性がApacheが実行SUexecモード(うするのが一般的のための共有ホスティングお使いいただくことによって正確に変更されたこのエラーがそのようにしている。
解決
しょご利用共用ホスティングしてこの問題のために、 スクリプトディレクトリ または スクリプトファイル いその他の権利をより 755
.
こちらには の場合 翻訳からオランダ語
他のヒント
CGI :: CarpののさんfatalsToBrowser
を使用してください。
use CGI::Carp qw(fatalsToBrowser);
またhref="http://www.perlmonks.org/?node_id=380424" rel="nofollow noreferrer">トラブルシューティングPerlのCGIスクリプトを私の
エラーメッセージから、私は、サーバー側が含まれてからCGIスクリプトを実行するために許可されていないことを推測しています。あなたのApacheのバージョンを実行していますか?それは古いApacheの場合は、Apache 1.3の
これは、しかし、多くの場合、我々はユーザーに、ユーザーはそれについて何もできない正確なエラーを示していないセキュリティのため、使いやすさのためではありません。例えば、バックエンドサーバが利用できないことを想像してみてください。私は、ユーザーとして、Webアプリケーションでそれを修正するために何ができるのでしょうか?
いくつかのケースでは、エラーメッセージが「:不正な構文比類のない "。SQLエラー」のように、有用な情報が含まれています。ユーザーが入力に入力引用符を持っていた場合、このフィードバックは、SQLインジェクションの脆弱性を示すことになる。
その他の良性探しのメッセージは、同様に、ユーザーに表示悪いです。攻撃者が望んでいることを重要なのは知っている「とは、異なる何かが起こりました。」アプリケーションは、一つの入力に対して1つのエラーを出力し、他のIINPUTのための別のエラーした場合、攻撃者は別の何かが間違っていることを知っている、これが集中する興味深い場所であること。
生産現場では、エラーがファイルに記録されなければならない、と、適切であれば、あなたのWebインターフェイスを介してダウンロード可能 - しかし、クロスサイトスクリプティングを避けるために、ブラウザに任意の出力をサニタイズすることは非常に注意してください。そして、デバッグおよび生産(POSTやCGIパラメータを経由してますが、設定ファイルのオプションでそれをコントロールしていない)の間、これを再構成するには、ユーザが提出したオプションがあってはならない。
これには次の 3 つの要因が考えられます。
- 権限レベル rwx の設定が間違っています (実行/書き込みレベル)
- UUID/GUID が Apache 設定と一致しません
- 上記2つの組み合わせ。
詳細については、Apache suexec+errorlog を確認してください。