Maison  >  Article  >  développement back-end  >  Résumer la méthode de protection des informations d'erreur renvoyées en PHP

Résumer la méthode de protection des informations d'erreur renvoyées en PHP

PHPz
PHPzoriginal
2023-04-03 11:15:261357parcourir

Dans le processus de développement PHP, nous rencontrerons inévitablement des erreurs d'exécution de programme. À l'heure actuelle, le message d'erreur par défaut du système peut offrir des opportunités aux attaquants. Par conséquent, dans le processus de développement proprement dit, nous devons protéger les informations d’erreur pour améliorer la sécurité du site Web. Cet article vous fournira une référence en présentant la méthode de protection des informations d'erreur renvoyées par PHP.

  1. Désactiver le rapport d'erreurs

PHP fournit une méthode pour désactiver le rapport d'erreurs, c'est-à-dire ajouter la ligne de code suivante au code :

error_reporting(0);

Lors de l'utilisation de cette méthode, PHP n'affichera aucune information d'erreur, y compris erreurs de syntaxe et erreurs d'exécution. Cette méthode est simple et facile à utiliser, mais les développeurs ne peuvent pas trouver et corriger les erreurs à temps, elle ne convient donc qu'aux sites Web officiellement lancés.

  1. Enregistrez les informations d'erreur dans le fichier journal

Utilisez cette méthode pour enregistrer les informations d'erreur dans le fichier journal côté serveur. Le code est le suivant :

ini_set('log_errors', 'On'); //开启日志记录
ini_set('error_log', '/var/log/php.error.log'); //将错误信息输出到指定路径的日志文件中

Pendant le processus de développement, utilisez cette méthode pour afficher le fichier journal. informations d'erreur lorsqu'une erreur se produit. Fichiers journaux pour localiser rapidement la cause de l'erreur et la corriger.

  1. Rediriger le message d'erreur vers une page personnalisée

Utilisez cette méthode pour rediriger le message d'erreur vers une page personnalisée afin d'obtenir le blocage. Le code est le suivant :

ini_set('display_errors', 'Off');
ini_set('error_reporting', E_ALL);
ini_set('log_errors', 'On');
ini_set('error_log', '/var/log/php.error.log');

function myErrorHandler($errno, $errstr, $errfile, $errline) {
    header('Location: /error.html'); //将错误信息重定向至自定义错误页面
    exit; //终止脚本的执行
}

set_error_handler('myErrorHandler');

Avec cette méthode, même si une erreur survient, l'attaquant ne peut voir aucune information utile, améliorant ainsi la sécurité du site.

  1. Utilisez le fichier .htaccess pour rediriger les messages d'erreur

Si votre site Web utilise le serveur Apache, vous pouvez utiliser le fichier .htaccess pour le blocage à l'échelle du site. Le code suivant redirige le message d'erreur vers une page d'erreur personnalisée :

php_flag display_errors Off //关闭错误信息输出
php_value error_reporting 0 //屏蔽所有错误信息
ErrorDocument 500 /error.html //设置500错误的自定义错误页面

Cette méthode convient aux situations où plusieurs programmes PHP s'exécutent en même temps. Il vous suffit d'ajouter le code ci-dessus au fichier .htaccess dans le répertoire racine. du site Internet.

Résumé

Ce qui précède vous présente la méthode de protection des messages d'erreur renvoyés par PHP En choisissant différentes méthodes, nous pouvons répondre de manière flexible en fonction des besoins de développement. Il convient de noter que le blocage des messages d’erreur n’est qu’un moyen d’améliorer la sécurité du site Web et ne peut remplacer d’autres mesures de sécurité. Par conséquent, au cours du processus de développement, il est également nécessaire de combiner d’autres mesures de sécurité pour améliorer la sécurité et la fiabilité du site Web sous tous ses aspects.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

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