GWT et sécurité, se prémunir des CSRF

Préambule

Les applications Web enrichies, utilisant JavaScript pour mettre à jour tout ou partie d’une page web, sont officiellement nées en 2005 avec l’apparition du terme Ajax, et sont aujourd’hui communes. De ce concept sont ensuite nées les applications JavaScript « Single Page Interface », modèle dans lequel rentre l’application typique GWT. Le framework propose aujourd’hui un modèle de programmation au juste milieu entre les paradigmes du développement RDA (pour Rich Desktop Application) et du développement Web. Après compilation, une application GWT devient une application JavaScript tout à fait standard du point du vue du browser.

Les applications Ajax n’introduisent pas de nouvelles failles de sécurité. Techniquement, les risques et les techniques d’exploitation sont les mêmes. Si certaines failles sont affaiblies par le modèle, d’autres ont vu leur terrain de jeu évoluer.

Le but de cet article et d’un autre à venir est de rappeler les failles de sécurité qui concernent tout particulièrement la portion JavaScript – et donc GWT – de nos applications Web, puis de présenter les réponses qu’il convient de mettre en œuvre dans une application GWT pour contrecarrer les éventuelles attaques.

(Lire la suite…)

Du TDD pour Silverlight aussi !

A moins de s’être limité à dessiner des ronds et des carrés avec Silverlight, vous avez sans doute déjà tenté d’utiliser un des templates de projets du Silverlight Toolkit permettant de faire des tests unitaires pour vos applications RIA! Plein de bonne volonté, vous vous êtes heurtés aux multiples inconvénients de cette solution :

  • Framework de tests spécifique à Silverlight
  • Obligation de lancer une application « conteneur » pour lancer vos tests
  • Usabilité plus que discutable de cette même application
  • Impossibilité d’utiliser une métrique comme la couverture de code
  • et j’en passe…

N’abandonnez pas encore ! Je vous proposer ici une solution pour venir à bout de ces limitations… plus d’ excuses, vous pourrez tout tester …

la suite par ici en anglais

 

Une architecture d’application Flex maintenable

Le framework Flex permet d’écrire très rapidement des IHM fonctionnelles, notamment grâce au langage MXML. Celui-ci permet effectivement de décrire l’interface avec peu de lignes de code.

Seulement, voilà, une fois l’étape du POC passée, les fichiers MXML s’accumulent, le code ActionScript s’insinue petit à petit dans le code MXML pour implémenter les handlers d’événements, les appels de services, la logique métier. Après quelques temps, il devient de plus en plus difficile de savoir d’où viennent les données affichées (ie. quel code a mis à jour la donnée ?), d’où provient un appel de service (surtout d’où proviennent les valeurs des arguments de cet appel).

Dans cet article, nous verrons quelques bonnes pratiques permettant d’assurer la maintenabilité d’une application Flex.
(Lire la suite…)

Applications natives ou web HTML5 pour mon mobile ?

L’arrivée des terminaux mobiles en entreprise et la popularité de l’iPhone avec son modèle économique basé sur l’AppStore ont engendré le retour massif du développement d’applications natives, permettant de profiter de l’ergonomie, de la puissance et des nouvelles fonctionnalités des smartphones.

HTML5, la nouvelle version du standard du web, a été conçu pour remédier à ces lacunes. Quel est donc l’impact de HTML5 sur le choix entre application native ou application web?
(Lire la suite…)

Retour du front : dois je migrer vers GWT 2 ?

Je travaille sur un projet GWT depuis un peu plus d’un an (26K lignes de Java, à peu près autant de code en test, GWT 1.7.1). GWT 2 est sorti récemment, avec son lot de nouveautés. Plusieurs questions se posent donc :

  • Dois je migrer vers GWT 2 ? (ou « Qu’est ce que GWT 2 va apporter à mon projet ? »)
  • A-t-on vraiment le choix ?
  • Combien cela va t il me coûter ?
  • Comment vendre ce coût à ma MOA ?

Afin de répondre à ces questions ô combien importantes, j’ai donc fait quelques essais avec GWT 2. Voici le résultat.

(Lire la suite…)

Optimiser le temps de chargement d’une application GWT (2/2)

La première partie de cet article a permis d’introduire la problématique de chargement des RIA, en commençant par expliquer comment optimiser le temps de téléchargement d’une application web basée sur GWT, notamment à travers la modularisation. Cette deuxième partie aborde l’optimisation du temps d’initialisation d’une application sur le browser, toujours illustré à travers la technologie GWT. (Lire la suite…)

Flex vs Silverlight

Alors que Macromedia (racheté en 2005 par Adobe) était parti seul devant, début 2004, dans le développement d’applications RIA en sortant la première version de Flex, voilà que fin 2006 (plus de 2 ans après donc), Microsoft dévoile une première version de sa réponse à Flex nommée Silverlight. Seulement, cette première version n’était là que pour « occuper le terrain » car elle restait encore très loin derrière Flex qui passait à peu près au même moment en version 2. D’ailleurs, à peine cette première version de Silverlight sortie, Microsoft annonçait déjà les premières versions Alpha de la v2 qui viendrait avec une machine virtuelle plus performante, une version allégée de la CLR .Net, en lieu et place du moteur Javascript de la v1. Alors que la v2 est sortie en fin d’année dernière, la v3 sort seulement un peu plus de 6 mois après. Il semble donc que malgré son retard, Microsoft produit à un rythme impressionnant de nouvelles versions de Silverlight en apportant à chaque fois un nombre non négligeable de nouvelles fonctionnalités. Même si Adobe continue de faire évoluer sa plateforme et s’apprête à sortir la version 4 d’ici la fin de l’année, les deux technologies sont aujourd’hui au coude à coude.
Dans cet article, nous ferons un tour panoramique de ces deux technologies afin de pointer leurs similitudes et différences.

(Lire la suite…)

JSF 2 : les principales nouveautés

La JSR 314 spécifiant la version 2 de Java Server Faces (JSF), le framework de développement d’IHM web fourni par JEE, a été livrée en version finale le 12 mai dernier (cf. http://jcp.org/en/jsr/detail?id=314).

Cette version 2 de JSF cherche à améliorer la productivité des développements, l’intégration d’AJAX et la ré-utilisation. Nous allons parcourir ici les principales nouveautés.
(Lire la suite…)

Optimiser le temps de chargement d’une application GWT (1/2)

Le temps de chargement d’une application informatique est un point essentiel en terme d’usabilité. Il a un impact important sur l’expérience utilisateur, tellement important qu’il peut être le facteur décisif d’adhésion ou de rejet de l’application par les utilisateurs qui se font un avis en 2-3 secondes. On a tous des exemples douloureux en tête… ou pas d’ailleurs… et c’est bien ça le drame : ces applications passent aux oubliettes!
(Lire la suite…)

Intégrer GWT & Spring

De base le toolkit GWT vient avec son framework d’échange : GWT-RPC. Aucun problème particulier dans son fonctionnement mais quelques limitations à la fois dans la configuration que l’on pourra qualifier d’un « peu lourde », ainsi que dans l’intégration avec un existant (typiquement un existant Spring).
(Lire la suite…)