PHP 脆弱性修復におけるエラー処理と例外処理
近年、インターネットの普及と応用に伴い、PHP は広く使用されるスクリプト言語になりました。ハッカーの攻撃の標的にもなります。 Web サイトのセキュリティを確保するために、PHP プログラマーはセキュリティの脆弱性に常に注意を払い、適時に修正する必要があります。
PHP の脆弱性を修復するプロセスにおいて、エラー処理と例外処理は非常に重要な側面です。この記事では、いくつかの一般的なエラー処理および例外処理手法を紹介し、対応するコード例を示します。
1. エラー処理
PHP では、error_reporting
関数を通じてエラー報告レベルを設定できます。エラーの表示方法を制御します。一般的に使用されるエラー レポート レベルは次のとおりです。
E_ALL
: すべてのエラーと警告を表示します。E_ERROR
: 致命的なエラーを表示しますE_WARNING
: 警告を表示 : リマインダーメッセージを表示
error_reporting(E_ALL);
function customErrorHandler($errno, $errstr, $errfile, $errline) { echo "<b>Error:</b> [$errno] $errstr<br>"; echo "Error on line $errline in $errfile<br>"; } set_error_handler("customErrorHandler");上記のコードでは、
customErrorHandler 関数を使用してエラーを処理し、カスタム エラー処理関数は PHP のデフォルトのエラー処理関数に設定されています。
ログ
function customErrorHandler($errno, $errstr, $errfile, $errline) { $logFile = 'error.log'; $errorMessage = "[$errno] $errstr "; file_put_contents($logFile, $errorMessage, FILE_APPEND); } set_error_handler("customErrorHandler");
error.log
ファイルに追加します。2. 例外処理
例外のスロー
function divide($dividend, $divisor) { if ($divisor == 0) { throw new Exception('Division by zero!'); } return $dividend / $divisor; } try { echo divide(10, 0); } catch (Exception $e) { echo $e->getMessage(); }
上記のコードでは、除数が 0 の場合、例外がスローされ、この例外は
catch ブロックでキャッチされて処理されます。 カスタム例外クラス
class CustomException extends Exception { public function __construct($message, $code = 0, Exception $previous = null) { parent::__construct($message, $code, $previous); } public function __toString() { return __CLASS__ . ": [{$this->code}]: {$this->message} "; } } try { throw new CustomException('This is a custom exception!'); } catch (CustomException $e) { echo $e; }
CustomException
という名前のカスタム例外クラスを定義し、catch ブロックで例外をキャッチして処理します。
結論
以上がPHPの脆弱性修正におけるエラー処理と例外処理の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。