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






