Maison >développement back-end >tutoriel php >Sécurité PHP - Rapport d'erreurs

Sécurité PHP - Rapport d'erreurs

黄舟
黄舟original
2017-02-23 09:24:241143parcourir


Rapport de bug

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(&#39;error_reporting&#39;, E_ALL | E_STRICT);
  ini_set(&#39;display_errors&#39;, &#39;Off&#39;);
  ini_set(&#39;log_errors&#39;, &#39;On&#39;);
  ini_set(&#39;error_log&#39;,
&#39;/usr/local/apache/logs/error_log&#39;);
 
  ?>


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(&#39;my_error_handler&#39;);
 
  ?>

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,
&#39;/usr/local/apache/logs/error_log&#39;);
  }
 
  ?>

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(&#39;my_warning_handler&#39;,
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) !


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn