3

私は codeigniter フレームワークでプロジェクトを作成し、それをホストにアップロードしました。ホストは、サイトがサーバーのログファイルをかなり速く埋めていると言いました。

だから私はエラーログをチェックし、私が得るすべてのリクエストについて:

error_reporting() has been disabled for security reasons /index.php on line 36
set_error_handler() has been disabled for security reasons /system/core/CodeIgniter.php on line 72

コードイグナイターはエラー処理のためにこれらのオプションを必要とするため、ホストにこれらのオプションをオンにできるかどうか尋ねましたが、サーバーでこれらの機能を無効にするにはコードを編集する必要があるとの回答がありました。

codeigniter のコア ファイルを編集したくありません。なぜそれが無効になっているのかわかりません。このエラーを修正する簡単な解決策、またはホストにこの設定を変更するように指示するいくつかの引数を知っている人はいますか?

4

1 に答える 1

0

このerror_reporting機能が Web ホストによって無効にされている理由は、障害のある PHP プログラムがクラッシュ メッセージをエンド ユーザーに出力して、ハッカーがサーバーへのアクセス方法を突き止めるために使用するのを防ぐためです。PHP クラッシュ メッセージには、ディレクトリ パスや使用されているフレームワーク ソフトウェアに関する情報など、ハッカーにとって役立つ可能性のある詳細が多数含まれています。

これらのメッセージがエンド ユーザーに表示されないように、運用サイトのエラー レポートを無効にすることは、一般的に良い方法と考えられています。開発ではオンに、本番ではオフにします。

これは、ホストが無効にした理由を説明しています。

「エラー報告が無効になっています」というメッセージがログに記録されないようにする方法については、残念ながら、コードを編集して への参照を削除しない限り、できませんerror_reporting

CodeIgniter のマニュアルには次のページが含まれています: http://ellislab.com/codeigniter/user-guide/general/errors.html

このページでは、error_reportingコードindex.phpが .

つまり、CodeIgniter は「これを変更してください」と言います。したがって、コア ファイルを変更したくないことを心配する必要index.phpはありません (実際にはコア ファイルではありません)。

于 2013-01-16T11:24:57.493 に答える