IzPack 3.10.1 released
I am pleased to announce that the IzPack Java installer 3.10.1 has been released. This new maintainance release brings many fixes and translations updates. You are strongly encouraged to migrate your installers to this new release.
It can be downloaded from the IzPack homepage at http://www.izforge.com/izpack/
Many thanks to the developers and contributors who made this release possible
Un bien bel article sur MySQL
Si comme moi vous n'êtes pas vraiment fan de ce pseudo-SGBD qui prend assez fréquemment des distances par rapport aux standards SQL, allez donc lire ce bien bel article. Si vous êtes un fan invétéré de ce système qui a attendu la version 5 pour implémenter les contraintes d'intégrité, les vues et les triggers, allez donc aussi y faire un saut.
Rappellons que PostegreSQL ou Firebird sont aussi d'excellents SGBD opensource nettement plus proches des standards. Ils sont également publiés sous des licences moins contraignantes (respectivement BSD et Mozilla Public License). A noter enfin qu'il existe un projet permettant de faire passer du SQL/Oracle sur Firebird.
L’injection de code SQL
L'injection de code SQL est une plaie classique et majeure des applications web. Si vous ne connaissez pas le principe, l'explication suivante devrait suffire.
Un trop grand nombre de développeurs réutilisent tel-quels les valeurs récupérées dans les champs de formulaires ou dans les paramètres d'une requête HTTP GET. Et bien trop souvent ces valeurs sont réutilisées pour construire des requêtes SQL vers une base de données relationnelle. L'injection de code SQL consiste alors à passer des valeurs détournées de façon à modifier la requête SQL. Le grand classique est de contourner des vérifications, insérer des données, ou supprimer purement et simplement des tables.
Petit exemple : considérons un formulaire pour se connecter à une application. La requête SQL qui vérifie l'authentification peut alors se construire comme ceci :
select * from USERS where LOGIN = ? and PASSWORD_MD5 = ?
Le grand classique consiste à construire cette chaîne par concaténation :
$sql = "select * from USERS where LOGIN =" + $login + "and PASSWORD_MD5 =" + $password_md5;
Si ce code vous semble familier, réfléchissez à ce qui se passe si un visteur saisi admin'-- pour valeur de $login :
select * from USERS where LOGIN = admin'-- and PASSWORD_MD5 = blablabla
Autrement dit, la requête se retrouver fermée brutalement et le reste de celle-ci est passé en commentaires par '--'. Dans bien des cas, la vérification dans l'application consiste à vérifier si la requête a retourné une réponse, ce qui sera sûrement le cas ici, et le visiteur va alors se retrouver administrateur sans pour autant connaître le mot de passe de admin !
J'ai trouvé cet excellente référence sur l'injection de code SQL. Je vous encourage vivement à la lire.
Sachez enfin qu'en utilisant un framework web solide et agile, vous pouvez vous simplifier grandement la vie. Pour Rails, vous pouvez suivre ce guide sur la sécurité. Ainsi plutôt que de faire un :
Email.find_all "owner_id = 123 AND subject = '#{@params['subject']}'"
préférez cette forme qui protège des injections SQL :
Email.find_all [ "owner_id = 123 AND subject = ?", @params['subject'] ]
Continued support from JetBrains
IDE for professional JavaScript
development with AJAX ready refactorings
JetBrains is supporting the IzPack Java installer project for the second consecutive year! They are giving to all of the project developers a free license of IntelliJ IDEA which is a superb IDE for experienced Java developers. Many thanks to the folks at JetBrains for supporting opensource projects!
