Configuration des erreurs

Pourquoi configurer

Pour tout site en développement il est interressant de voir rapidement les erreurs rencontrées par PHP ou toutes les librairies que vous utilisez. Voir les erreurs « en live » sur le site permet de rapidement les analyser et donc de les conriger.

Un problème apparait lorsqu’un site est mis en ligne (et donc à la merci des pirates). L’affichage d’une erreur donne énormément d’informations quant à une faille probable. Ces erreurs peuvent indiquer l’utilisation d’une librairie spéciale et spécialement sa version. Et connaître la version d’une librairie permet surtout de définir l’ensemble des bugs ou failles qui ont été corrigés dans des versions postérieures.

Un exemple qu’on croise assez souvent c’est les erreurs de requête SQL joliment offert aux pirates :

Unknown column 'iid' in 'where clause'
SELECT id,login FROM user WHERE iid=1

Notons que cette erreur nous donne la table utilisée pour séléctionner un utilisateur. On peut aussi voir apparaitre la structure (une partie au moins) de cette table.

Pour limiter la vitesse d’action des attaquants, il est important de leurs fournir le moins d’informations possible. Et donc de ne pas afficher les erreurs directement sur le site.

Configuration en développement

Dans ce cas il faut afficher les erreurs pour donner un maximum de réactivité dans la correction de celles-ci.

display_errors = On
error_reporting = E_ALL & ~E_NOTICE
log_errors = On
error_log = /var/log/apache2/error.log
ignore_repeated_errors = Off

Configuration en production

Dans ce cas, le site est en ligne et il faut afficher le moins d’informations d’erreur. Il faut bien sur continuer à les enregisrer pour garder un suivit des erreurs car le but n’est pas de fermer les yeux.

display_errors = Off
error_reporting = E_ALL & ~E_NOTICE
log_errors = On
error_log = /var/log/apache2/error.log
ignore_repeated_errors = On
Tagués avec : , , , , , , , , ,
Publié dans PHP

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*