Il y a 6 ans -
Temps de lecture 6 minutes
Revue de Presse Xebia
La revue de presse hebdomadaire des technologies Big Data, DevOps et Web, architectures Java et mobilité dans des environnements agiles, proposée par Xebia.
Mobilité
Build flexible layouts with FlexboxLayout
Google a mis à disposition les sources de FlexboxLayout l’an dernier en même temps que la sortie de ConstraintLayout. Cet article donne un overview complet sur comment nous pouvons profiter de ce widget pour construire des layouts souples.
ConstraintLayout maintenant disponible en version 1.0
La bibliothèque ConstraintLayout réalisée par Google est maintenant disponible dans sa première version stable. Cette bibliothèque permet la construction d’écrans complexes de manière efficiente pour Android. Un codelab est disponible pour découvrir comment utiliser cette bibliothèque au sein de vos applications.
Craftsmanship
Réflexion sur l’élégance
Quel développeur n’a jamais prononcé ces mots devant un bout de code bien écrit, simple, sobre, mais néanmoins redoutablement efficace et robuste : « c’est élégant ! ». L’élégance du code est en effet souvent preuve de bonnes pratiques de Craftsmanship. Bas Dijkstra nous propose un court article sur le sujet, sobrement intitulé « On Elegance ».
Front
Anime.js 2.0, une librairie pour tout animer
La librairie anime.js sort en version 2.0 ! Très complète, elle permet de manipuler toutes sortes de propriétés : aussi bien du CSS, du SVG, du DOM, du Javascript, etc. Bref, tout ce qui vous permet d’animer vos applications web. Du morphing, du line tracing, de la gestion de la timeline aux travers de différentes animations, les possibilités sont très vastes.
Dans cette nouvelle version majeure, beaucoup d’améliorations (surtout en terme de performance), des ajouts bien venus (gestion de Promise, possibilité de jouer une animation à l’envers, etc.) et des correctifs importants (reset, pause, etc.). Il y a vraiment beaucoup de nouveautés, je vous laisse consulter la liste complète pour plus de détails.
En finir avec les attaques CSRF
Sécuriser les applications web n’est pas trivial. De nombreuses faiblesses existent. Certains frameworks ou librairies proposent des solutions pour en éviter certaines (XSS par exemple), mais tout ne peut être couvert par des outils. Bien connaitre les possibilités pour les éviter est important.
Les attaques de type CSRF (Cross-Site Request Forgery) ont pour principe de simuler une requête sur un site légitime, depuis un site malveillant en utilisant les cookies de l’utilisateur pour rendre cette requête valide du point de vue du site cible. Une évolution du header Set-Cookie permet de vérifier l’origine du cookie grâce au tag SameSite et ainsi être encore plus résistant à ce type d’attaque. Cet article de Scott Helme explique en détail l’influence de ce tag. Un article à lire en prévision du support futur sur tous les navigateurs, qui est malheureusement loin d’être complet.
Mozilla présente Neutrino
Mozilla a présenté récemment Neutrino, un outil basé sur Webpack qui permet de boostraper sans configuration des applications Javascript. Mais Neutrino ne se limite pas à une suite d’outils particuliers comme le fait create-create-app pour React. Il permet de mettre en place très facilement des applications Node comme des applications web.
Basé sur un principe de Presets, il est prévu pour pouvoir s’adapter à toutes sortes de stacks et semble très personnalisable. Il inclue également un mécanisme d’éjection, qui renvoie dans votre projet tous les fichiers, dépendances et configurations générées par l’outil pour reprendre intégralement la main dessus.
Back
Node.js en version 7.6
Node.js 7.6 est sorti ! Cette release inclue v8 5.5 et, avec lui, le support des fonctions async (Async, Await) utilisables sans flag ! Depuis, une version de Node.js 7.7 a été réalisée, mais attention, elle contient un bug qui empêche tous les modules natifs de se charger. Comme décrit sur la page « news », il va falloir attendre un patch (7.7.1) pour l’utiliser convenablement.
Le coin de la technique
Google annonce la première collision SHA1
Après 2 ans de recherche, une collaboration entre Google et le CWI (l’équivalent du CNRS et de l’INRIA Néérlandais) a permis de découvrir la première collision sur l’algorithme de hachage SHA1.
Cette collision a été rendue possible par une réduction du nombre de calculs d’un facteur 100 000 (par rapport à un « brute force ») grâce à l’attaque découverte par cette collaboration et nommée SHAttered, amenant tout de même le nombre de calculs de SHA1 qu’il a été nécessaire de réaliser pour trouver cette première collision à 9.223.372.036.854.775.808.
L’impact pour la plupart d’entre nous est cependant limité :
- Côté certificats SSL, dès 2014, Mozilla (Firefox) et Google (Chrome) avaient annoncé la future dépréciation des certificats basés sur SHA1; dépréciation qui a été mise en pratique en 2016 par Firefox (graduellement, puis définitivement à la suite de l’annonce de la découverte de Google et du CWI) et par Chrome. À titre indicatif, les certificats reposants sur SHA1 ne concernent aujourd’hui que 0.1% des certificats de sites publics.
- Du côté de git, Linus Torvalds a tenu à rassurer lui-même la communauté en rappelant que git ne se sert des hash SHA1 qu’à des fins d’identification et non comme point central de sécurité.
CloudfFlare leak – « Cloudbleed »
Le même jour que la révélation de SHAttered, le 23 février, le CDN CloudFlare a annoncé publiquement au travers d’un rapport d’incident extrêmement détaillé et passionnant la fuite d’informations privées suite à un bug. Un parallèle a rapidement été fait avec Heartbleed dans la mesure où il s’agit là encore d’accéder à des données supposées inaccessibles suite à une erreur de type « buffer over-read », permettant de lire plus d’informations que ce qu’un buffer d’une taille donnée stocké en mémoire contient réellement.
Le problème a pris une nouvelle dimension suite à la mise en cache de ce contenu « leaké » par les moteurs de recherche tels que Google. Le suivi de la notification publique du bug par Tavis Ormandy, auteur de la découverte, donne d’ailleurs une très bonne perspective sur la collaboration des différents acteurs concernés lorsque ce genre de faille est découverte.
Une preuve de plus que la qualité logicielle importe ! On notera d’ailleurs les bienfaits d’un pipeline de déploiement automatisé et fiable : CloudFlare a pu déployer le premier correctif de mitigation du bug en une demie heure, et ce de manière mondiale.
Commentaire