Maison > Article > développement back-end > Sécurité PHP - Rapport d'erreurs
Aucun développeur n'est infaillible, PHP Le rapport d'erreurs La fonctionnalité vous aidera à identifier et à localiser ces erreurs. Ces descriptions détaillées fournies par PHP peuvent également être vues par des attaquants malveillants, ce qui n'est pas une bonne chose. Il est important que les messages d'erreur soient invisibles au public. Faire cela est simple, désactivez simplement display_errors. Bien sûr, si vous souhaitez obtenir des informations sur les erreurs, vous pouvez activer l'option log_errors et définir le chemin de sauvegarde du fichier journal des erreurs dans l'option error_log.
Étant donné que le réglage du niveau de rapport d'erreurs peut empêcher la détection de certaines erreurs, vous devez définir error_reporting sur au moins E_ALL (E_ALL | E_STRICT est le paramètre le plus élevé, Fournissez des suggestions de compatibilité descendante, telles que des conseils qui ne sont pas recommandés).
Tous les niveaux de rapport d'erreurs peuvent être modifiés à n'importe quel niveau, donc si vous utilisez un hébergement partagé, vous n'êtes pas autorisé à modifier php.ini, httpd.conf ou Lorsque vous apportez des modifications aux fichiers de configuration tels que .htaccess, vous pouvez exécuter des instructions de configuration au niveau du rapport d'erreurs dans le programme :
CODE :
<?php ini_set('error_reporting', E_ALL | E_STRICT); ini_set('display_errors', 'Off'); ini_set('log_errors', 'On'); ini_set('error_log', '/usr/local/apache/logs/error_log'); ?>
Conseils
http://www.php.cn/ La configuration des options de php.ini est expliquée en détail.
PHP vous permet également de passer set_error_handler( ) Function spécifie votre propre fonction de gestion des erreurs :
CODE :
<?php set_error_handler('my_error_handler'); ?>
Le programme ci-dessus spécifie votre propre fonction de gestion des erreurs my_error_handler( ); Voici un exemple d'utilisation réelle :
CODE :
<?php function my_error_handler($number, $string, $file, $line, $context) { $error = "= == == == ==\nPHP ERROR\n= == == == ==\n"; $error .= "Number: [$number]\n"; $error .= "String: [$string]\n"; $error .= "File: [$file]\n"; $error .= "Line: [$line]\n"; $error .= "Context:\n" . print_r($context, TRUE) . "\n\n"; error_log($error, 3, '/usr/local/apache/logs/error_log'); } ?>
Petit Astuce
PHP 5 permet également settings_error_handler( ) transmet le deuxième paramètre pour limiter les conditions d'erreur dans lesquelles la fonction de gestion des erreurs définie est exécutée. Par exemple, créez maintenant une fonction pour gérer les erreurs de niveau d'avertissement :
CODE :
<?php set_error_handler('my_warning_handler', E_WARNING); ?>
Ce qui précède est le contenu du rapport d'erreur de sécurité PHP. , pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !