web-dev-qa-db-ja.com

エラーページは厳密にhtmlである必要がありますか?

ApacheサーバーでPHPを使用しています

私は疑問に思っています..エラーページがデータベース接続などなしで、純粋でシンプルなhtmlとして最適に提供されるべきかどうか?

これにより、PHPまたはデータベースが原因で発生したエラーを繰り返したり複雑にしたりする可能性がなくなりますか?

1
mowgli

動的なエラーページが必要ないという理由だけで、私はイエスと言います。たとえば、データベースがダウンしているか、プレッシャーにさらされている場合、エラーページでデータベース接続を試行することはほとんどありません。同様に、サーバーに負荷がかかっている場合は、エラーページでサーバー側の処理を実行しないようにします。全体として、この点で物事をシンプルに保つ方が良いと思います。

それを言って、404エラーページはこれの例外であることがわかるかもしれません。例:探しているページに似ているページへのリンクのリストをエンドユーザーに表示します。

3
Wexford

これは実際に処理されるエラーに依存します。 404エラーの場合、サーバーに問題がある理由はありません。つまり、すべてのphpが正常に機能しているはずです。ただし、500がある場合は、サーバーに問題があり、phpの実行が妨げられている可能性があります。これは本当にあなたのリスクに対する耐性に依存します。

3
SAMdroid

それはあなたの状況次第です。

あなたのPHPは、データベース接続の不足をうまく処理することもできます。しかし、バグや問題が発生する可能性のあるカスタムPHPがある場合は、HTMLページをご覧ください。

DrupalやWordPressなどのシステムを使用している場合は、そこに提供されているものをすべて使用することをお勧めします。おそらく、DrupalのSearch 404検索ページへの訪問者。

大量のトラフィックがあり、突然数百人がページを更新しているときにサーバーの負荷が大幅に増加する可能性がある場合は、代わりにサードパーティのサービスから画像を提供することをお勧めします(例:Amazon)これは、画像の読み込みに時間がかかり、Ctrl-Rを非常にすばやく押すことで負荷がさらに増加するのを防ぐためです。

2
guaka

エラーに関する詳細を提供すると、悪意のある攻撃者にとって非常に価値のある情報が開示される可能性があるため、非常に一般的なエラーページのみをユーザーに提供する必要があります。

ただし、デバッグにはさらに情報が必要です。次の解決策があります。

  • 単に応答するのではなく、すべてのエラー情報をログに記録します。これは、エンドユーザーに発生したエラーを分析できるため、運用サーバーには適しています。
  • テストサーバーがある場合は、テストサーバーで実行されている場合にのみ、完全なエラー情報で応答するようにソフトウェアを明確に構成可能にします。
  • テスト用にワークステーションのみを使用する場合は、要求がローカルホストからのものである場合にのみ、完全なエラー情報で応答します。
1
h22