Tutoriaux
Site
TutoriauxSite
|
Ruby on Rails : Fichiers de log : Données sensibles et rotationposté par Anthony Heukmes le 15-02-2008
Ruby on Rails : fichiers de log : données sensibles et rotation
Lorsque je lance un nouveau site web, j'aime bien "tracer" mes premiers visiteurs par l'intermédiaire du fichier de log afin de déterminer leur parcours.
$ tail -f production.log
Lorsque j'ai lancé ma première application Ruby On Rails (RoR) j'ai été assez surpris de constater qu'un fichier de log peut contenir des informations plutôt sensibles.
Digest::SHA1.hexdigest(your_password)
Mais le fichier de log de rails stocke toutes les informations liées aux requêtes HTTP et donc les paramètres qui sont passés à vos controllers par l'intermédiaire des formulaires. Ainsi, lorsqu'un utilisateur complète votre formulaire de login avec son pseudo et son password, ces données sont envoyées à votre serveur web et stockées en clair dans votre fichier de log. Une vraie mine d'or pour un éventuel pirate qui arriverait à accéder à votre fichier de log. Il existe heureusement une solution très simple : filtrer votre fichier de log! Ouvrez votre ApplicationController (application.rb) et ajoutez la ligne suivante :
filter_parameter_logging :password
Cette méthode va automatiquement filtrer tous les paramètres appelés 'password' en les remplaçant par la chaîne [FILTERED]. Si vous passez comme paramètre :user, ce sont tous les paramètres contenus dans le tableau user qui seront filtrés. Rotation des fichiers de log
Chaque requête HTTP est insérée dans le fichier de log de Rails, la taille de celui-ci peut très vite atteindre une taille gigantesque et ralentir tout votre système.
# vi /etc/logrotate.conf
Ajoutez ce bloque en fin de fichier : /path/to/your/rails/applicaton/log/*.log { daily missingok rotate 5 compress delaycompress notifempty copytruncate } C'est tout! Logrotate est lancé automatiquement plusieurs fois par jour et effectuera le boulot! Si vous voulez le tester directement, il suffit de lancer la commande :
# /usr/sbin/logrotate -f /etc/logrotate.conf
Grâce au *.log, tous les fichiers de type .log présents dans le dossier spécifié seront automatiquement traités (et donc même vos logs propres à Mongrel par exemple). rotate 5 représente le nombre de fichiers à garder (on ira ici jusqu'à production.log.5). Version imprimable
Commentaires
Il n'y a actuellement aucun commentaire sur cet article! |
||