jump to navigation

[Stage] Photos chez Ineodev 21 août 2009

Posted by Nassim in Non classé.
Tags: , , , , ,
7 comments

Mon stage chez INEODEV tire à sa fin, j’ai donc saisi l’occasion pour prendre des photos des lieux,  ne soyez pas surpris de n’apercevoir aucun individu sur les photos, il ne s’agit pas de censure, c’est juste que toute l’équipe était dans la cour pour organiser un barbecue.

Ineodev

Lieu de travail des responsables du "Contrôle Qualité".

Bureau d'une des charmantes qui travaillent chez Ineodev.

Bureau d'une des charmantes femmes qui travaillent chez Ineodev.

Bureau du CTO

Bureau du CTO

La ruche; l'espace des développeurs !

La ruche; l'espace des développeurs !

Voilà, je n’ai pas tout pris en photo… la prochaine fois je prendrai des photos de la salle de réunion et du coin détente avec l’écran HD géant et la petite Wii ^^

[PHP] Générateur de documentation 11 août 2009

Posted by Nassim in Développement.
Tags: , , , , , , , , ,
2 comments

Pour diverses raisons un programmeur doit rédiger une documentation pour ses applications, cette tâche peut s’avérer très fastidieuse et rébarbative.

Étant actuellement en stage, je n’échappe pas à cette obligation de fournir une documentation technique qui servira les gens qui s’occuperont du maintient de l’application après mon départ, d’autant plus que mon travail s’inscrit dans un cadre OpenSource.

A l’université j’ai principalement appris à développer en JAVA, ce langage a la particularité d’intégrer par défaut un générateur de documentation nommé Javadoc, il est simple d’utilisation et donne un bon résultat. Par contre, sous PHP il n’y a pas de générateur de documentation inclus par défaut, j’ai donc comparé les différents outils disponibles sur la toile et mon choix c’est très vite porté vers Doxygen qui permet de générer de la documentation pour des programmes en PHP mais aussi des programmes en C/C++, JAVA, C#, Python,…etc.

Un des avantages non négligeables en ce qui me concerne est la possibilité d’utiliser avec Doxygen la même syntaxe que celle de Javadoc, ce qui est fort agréable quand on est déjà habitué à cet outil. Il y a aussi d’autres avantages comme : support de divers formats de sortie (PDF, XML, HTML…etc), templates personnalisables, tags personnalisables…etc.

Doxygen est donc un outil que je vous conseille fortement, je n’ai pas encore étudié le cas de Python mais si celui-ci ne dispose pas d’un outil standard,  j’utiliserai surement Doxygen pour la documentation de la partie Python de mon projet.

Site officiel : http://www.stack.nl/~dimitri/doxygen/index.html

[PHP-Sécurité] Technique du grain de sel 10 août 2009

Posted by Nassim in Développement, Sécurité.
Tags: , , , , , , , ,
2 comments

Intrigant comme titre non ? La technique du grain de sel est une méthode permettant de renforcer les hash MD5 des mots de passe d’une application, elle n’est pas spécifique à PHP et peut être adapté à bien des langages.

Le fonctionnement de cette technique est très simple, il conciste à concaténer une chaine au mot de passe avant de le hasher en MD5, cette chaine étant composée de caractères aléatoires de préférence. Le but de cette manoeuvre? Tout simplement rallonger le mot de passe et rendre les attaques par brute-force et par rainbow tables plus difficiles pour ne pas dire impossibles.

En effet, avec des attaques par rainbow tables (tables arc-en-ciel en français) il est souvent possible de casser un mot de passe de 8 lettres et moins, sachant qu’il est rare qu’un utilisateur ait un mot de passe d’une longueur supérieur, les chances de réussite sont relativement élevées.

A l’aide d’un grain de sel, on va résoudre ce problème de longueur de mot de passe et rendre les attaques de décryptage beaucoup plus fastidieuses. Voyons un peu en pratique comment implémenter notre méthode :

$salt = “aJ!#eIL-pwZm*F”;  // Notre grain de sel, une chaine de caractères

$password = $_POST['password'];  // Le mot de passe saisie par l’utilisateur via le formulaire d’enregistrement

$password = md5($password.$salt);  // On effectue une concaténation du mot de passe avec notre grain de sel

Voilà… c’est aussi simple que ça ! Il ne reste plus qu’à sauvegarder le mot de passe dans la base de données, bien entendu, pour vérifier le mot de passe de l’utilisateur quand il voudra s’identifier il ne faudra pas oublier de concaténer à nouveau le mot de passe saisie avec le grain de sel.

Lorsqu’on dévelope une application qui sera redistribuée avec sa source, on ne peut pas implémenter la technique du grain de sable directement comme on l’a fait plus haut, pour la simple raison que le “salt” sera visible par tous dans le code source, il y a 2 solutions que je connais pour y remédier :

1/ Soit vous demandez explicitement aux utilisateurs de votre application d’éditer la source pour modifier la valeur du salt.

2/ Soit vous concevez une fonction qui générera un salt et qui sauvegardera sa valeur dans la base de données, votre application pourra ainsi obtenir la valeur du salt dès qu’elle en a besoin en intérrogant la BD. C’est cette technique qui est par exemple employée par Joomla, à la différence qu’il y a un grain de sel généré pour chaque utilisateur.

Personnellement, si vous développez une application pour votre propre besoin, préférez la première façon de faire car elle présente l’avantage d’être moins gourmande en ressource (pas de fonction de génération avec des random, ni de requêtes SQL) et elle n’est pas vulnérable aux injections SQL.

Voilà… j’espère vous avoir présenter une fois de plus un article instructif et simple. N’hésitez pas à laisser des commentaires et à proposer des solutions alternatives.