Articles de la catécorie" Conception"
sept
28

Créer ou refondre un site Internet

Alliance numérique a publié son guide des bonnes pratiques pour créer ou refondre un site web.
Le document (gratuit) vous aidera à identifier les tâches, les profils et se découpent en 5 étapes :

  • La planification stratégique
  • La conception
  • La production
  • La mise en ligne
  • L’exploitation et la maintenance

PDF : créer son site web

sept
23

En finir (presque) avec les failles de sécurité de PHP

La sécurité des données est souvent considérée au départ  de la conception puis vite sous estimée par les développeurs et même par les clients – il faut y consacrer du temps…

Depuis PHP 5.2.0, l’assainissement et la validation des données sont nettement facilités avec l’introduction de filtrage des données.

L’utilisation de PHP sur le web a réellement été boostée avec les logiciels open source comme WordPress, Drupal et Magento ainsi que des applications Web comme Facebook. Les possibilités d’intrusion et d’insécurité pour les données augmentent d’autant plus que les applications où est employé PHP sont variées: sites web dynamiques, applications riche et métier, plates-formes de blogs, systèmes de gestion de contenu et commerce électronique – qui reste un sous-ensemble des autres sur le plan technique.
Il est donc indispensable d’assimiler les méthodes de propreté avec PHP, d’autant que ce nettoyage est grandement facilité avec les dernières versions de PHP. Aussi, avec quelques bonnes pratiques et un peu de qualité il est aisé de se protéger des attaques.

Pour rappel (ou pas), voici les menaces les plus connues (pour les solutions voir la doc et les liens plus bas) :

  • Cross-Site Scripting (XSS) :  la vulnérabilité la plus courante et pourtant la plus simple à prévenir. Le principe est de s’introduire dans un site à partir d’un autre pour déposer et exécuter un code malveillant.
    Un exemple très récent et marquant de cette technique est l’attaque de StalkDaily.com par le ver Mikeyy Twitter qui lançait du javascript via des interfaces Twitter infectées.
    Encore une fois les précautions à prendre avec le filtrage de données – celles passées par les URLs en l’occurrence – restent simples.
  • SQL Injection : Il s’agit d’injecter du code en insérant du script dans le programme initial et de le dévier. Par exemple en passant par un champ de recherche mal protégé, il est possible de casser la requête de recherche pour dévier l’objectif du programme et d’accéder à la base de données – et donc de lire ou de modifier le mot de passe administrateur etc. Là encore, les précautions sont aussi simples qu’efficaces.
  • Cross-Site Request Forgery (CSRF/XSRF) : va permettre à un utilisateur d’activer des actions pour lesquelles il n’a pas les droits. Par exemple, en déposant une image sur un forum qui contient en fait un script, lorsque l’administrateur, disposant de tous les droits va lire cette image, des codes malicieux vont s’exécuter – suppression etc.

Pour résumer, les sites sensibles au CSRF sont ceux qui acceptent les actions sur le simple fait de l’authentification à un instant donné de l’utilisateur et non sur une autorisation explicite de l’utilisateur pour une action donnée.

  • Il existe une variante de l’attaque précédente qui s’applique aux Cookies plutôt qu’aux sessions : le Cross Site Cooking. Les méthodes pour s’en prévenir sont les mêmes.
  • Données « inappropriées » : ce n’est pas vraiment une faille, mais c’est une vulnérabilité en ce sens que l’accumulation de mauvaises données peut faire planter un site – hébergement, base de données, affichage. Par exemple, sur MySpace (c’est dire…) il est possible d’altérer le profil utilisateur en modifiant l’affichage par l’insertion d’hacks CSS et HTML…

exploits_of_a_mom

La doc PHP nous dit qu’il existe deux sortes de filtre : la validation et le nettoyage.

La Validation sert à vérifier si une donnée passe certains critères. Par exemple, passer les critères de FILTER_VALIDATE_EMAIL va déterminer si une donnée est une adresse courriel valide, mais ne va pas modifier la données elle-même.

Le nettoyage va nettoyer les données, par exemple en retirant les caractères indésirables. Par exemple, passer une donnée à FILTER_SANITIZE_EMAIL va faire disparaître les caractères inappropriés dans une adresse courriel. D’un autre coté, la donnée n’est pas validée.

Des options sont éventuellement utilisées par la validation et le nettoyage, pour adapter leur comportement à des besoins spécifiques. Par exemple, avec l’option FILTER_FLAG_SCHEME_REQUIRED pour filter une URL, il faut indiquer le protocole utilisée (tel que http://).

Pour les sources et les différentes techniques c’est ici :

[+] – La documentation PHP – what else?…

[+] – Listing et applications des filtres

[+] – Tutoriaux et démonstrations

sept
21

Réaliser le site d’un groupe de musique : #1 WordPress ou Drupal ?

J’ai débuté la réalisation du site d’un artiste musicien et ami – et  guitar hero s’il en est – Bob, pour présenter ses projets aussi divers que variés. Je vous propose de suivre la conception de cette réalisation.

Après avoir brièvement lister ses besoins, s’est posé le choix de la plateforme : WordPress ou Drupal. Je sais que dans les deux je trouverai tout ce qu’il me faut pour développer le coté rich media (sons, vidéos, portfolio) et web 2.0 (mySpace & facebook, notations & commentaires… ).

music-word-drupal

Première étape : regarder ce qui se fait…

Mais à la question du design et de son intégration, la réponse est moins évidente – surtout par rapport au temps que je dois y consacrer. J’ai commencer un benchmark de sites en axant ma recherche sur le design de site musicaux utilisant Drupal, dans un premier temps. Je vous en fait profiter…

read more

mai
1

Utiliser WordPress comme CMS

Il y a certains points qu’il faut absolument penser avant de se décider à concevoir un site Web où WordPress serait utilisé comme CMS.
Devlounge a publié « Les choses à considérer lors de l’utilisation de WordPress comme un CMS », cet article doit absolument être lu par quiconque voulant utiliser WordPress comme CMS.
En substance :

  1. Lister les besoins pour déterminer ceux qui seront natifs, via plugins ou codés (hack) – certainement le cas pour des modules métiers.
  2. Lister les traductions nécessaires (surtout le Back Office) et les comparer à celles disponibles.
  3. Etablir une méthode pour garantir que les modifications ne seront pas écrasées à la mise à jour du noyau – et il faut pouvoir mettre à jour.
  4. Dresser une checklist de tests de compatibilité pour vérifier l’intégrité suite à une mise à jour.
  5. Analyser le type de contenu et sa proportion statique/Dynamique – utilisation de liveWriter.
  6. Conceptualiser la présentation pour la faire correspondre à un thème et à ses widgets.
  7. Réfléchir à la structure des permaliens – et du même coup aux catégories…

Quelques articles utiles :

  1. WordPress CMS Part 2: Theme Implementation
  2. How to Use WordPress for a Portfolio Site – Part 1 & Part 2
  3. How to use WordPress to run a magazine, news website
  4. Un article en français, histoire de.

A lire également, pour aller plus loin :

  1. (via) 101 Techniques for a Powerful CMS using WordPress
  2. Five Ways to Familiarize Clients with WordPress
  3. Don’t mess with my Toot Toot
  4. Using WordPress as CMS
  5. WordPress as a CMS (screencast)

Exemple d’utilisation sur le codex wordpress.

jan
27

CMS jungle : Drupal, Joomla, EzPublish, Typo3, WordPress… WTF ??

Plutôt que de refaire un énième benchmark, intéressons-nous de manière pragmatique et basée sur l’expérience de l’intégrateur, du développeur, du chef de projet et sommes toutes faites, celle l’utilisateur – la mienne en fait…

drupalTous ces CMS PHP sont Open Source et par définition « gratuits », avec quelques innovations pour EzPublish.
Tout d’abord, pour combattre les idées reçues, un tableau comparatif de la présence ou non des fonctionnalités ne sert à rien. Tout simplement  parce que je ne connais pas une seule fonction qui ne se retrouve pas chez l’autre : version mobile, e-commerce, génération PDF de la page, édition en front office, gestion multilingue, gestion multi-sites, workflow, fonctionnalités web 2.0 en tout genre…  Si la possibilité n’est pas native, elle existera sous forme de plugin qui y pourvoira et les communautés respectives sont de toute façon très actives.

eZpublish

Rendons compte, il est des CMS qu’il vaut mieux éviter, parce qu’ils sont obsolètes et/ou franchement complexe à maitriser sur bien des aspects. Typo3 et eZ Publish sont très séduisants sur papier et ont tout pour convaincre les DSI. Mais pour la configuration (déploiement, duplication…), la personnalisation graphique ou technique est un vrai cauchemar pour le développeur/intégrateur qui n’est pas certifié – et encore.  Une fois en place les performances sont au rendez-vous, mais bonjour les sueurs pour mettre en place ou intervenir sur des évolutions…

joomla

Joomla et Drupal sont très en vogue. Malgré une ergonomie discutable de son back-office, Joomla séduit rapidement les contributeurs, là où les développeurs pencheront pour Drupal. Tous deux ont une architecture modulaire et des performances très honorables. Seul le système de template demande un peu d’entraînement (mais reste digeste si l’on compare à typoScript ou eZ Template…). Drupal apparait plus flexible et plus simple en contribution pour les sites à gros volume.

Le plus simple à appréhender pour le développeur et l’intégrateur selon moi est WordPress. Depuis la version 2.7 les fonctionnalités sont très abouties. Il n’y certes pas de génération (de base) de type smarty mais… c’est tant mieux ! Un intégrateur HTML/CSS trouvera très vite ses marques et le codex Template utilisé par les développeurs est d’une puissante simplicité. Le back-office de WordPress est très orienté publication au sens Weblog, toutefois ses fonctionnalités CMS ne sont plus en reste, même s’il faut continuer de lui préférer Joomla ou Drupal pour un site avec des règles métiers complexes. En résumé, il est possible de faire ce que fait l’un avec l’autre. Avant de choisir un CMS, il faut dresser les compétences de ceux qui vont réaliser le site comme de ceux qui vont l’utiliser. Puis mettre en exergue les coûts de formation et de maintenance.

wordpress

Sur la flexibilité et la personnalisation, c’est au cas par cas, mais Drupal semble le mieux loti -pur ressenti. Mais encore une fois WordPress s’en sort très bien aussi avec en prime une vitesse de déploiement inégalée. Enfin une dernière remarque, ces deux CMS sont d’excellents back-offices pour une interface riche type Flex ou Flash grâce notamment à des services très poussés (XML-RPC).

http://fr.youtube.com/watch?v=N96eSZP-jpQ

En marge des CMS Open Source, on pourra s’intéresser à ELGG, pour qui souhaite recréer un facebook – nb : et un langage de template de plus…ou Magento pour qui souhaite recréer Amazon.

août
3

Programmer pour iPhone : les mains dedans.

Avec la sortie de l’iphone deuxième du nom et dans les 300 000 téléchargements de son SDK, nombreux sont ceux qui souhaitent développer leurs propres applications… Par où commencer ?

  1. Acheter un iPhone.
  2. Acheter un MAC.
  3. Télécharger la suite de logiciels
  4. Acheter la licence qui vous correspond.
  5. Se former à l’objective-C.
  6. Ajouter les tests d’interface avec le multi-touch framework (vidéo ci-dessous)

Et oui, c’est un métier…

[+] – Par où commencer ?

juin
22

Livre : Ergonomie web

Je viens de terminer la lecture de l’ouvrage Ergonomie Web publié par Eyrolles. L’avantage du livre est qu’il traverse les points intéressant chaque profil (chef de projet, concepteur, designer, intégrateur, webmaster…) et qu’il regroupe un ensemble conséquent de règles de bon sens à appliquer pour l’ergonomie web, présentées par une multitude d’exemples illustrés par des captures de sites internet.

Ergonomie Web : livre

Une mise à jour serait aujourd’hui peut-être nécessaire, de nouveaux sites présentant des interfaces intéressantes depuis la publication – mais tout va si vite dans ce domaine…
Il serait également à propos de compléter le sommaire sur les interfaces riches et mobiles, mais les méthodes et les règles sont bien là. A recommander donc.

[+] – Extraits du livre

sept
4

Architecture Youtube : point de secret

Adobe a publié un article sur l’architecture à concevoir pour des applications telles que Youtube ou MySpace. Au programme : serveur FMS, serveur d’encodage et plateforme PHP.
Il faudrait aussi s’intéresser (en bon geek) aux ressources matérielles; en bon chef de projet, aux coûts d’une telle structure et, pour le webdesigner, à l’ergonomie cliente qui se contente trop souvent du succès de l’application sans en exploiter toutes les possibilités (du player notamment). Post à suivre…

Architecture Youtube, myspace

Adobe met en avant ses produits avec le découpage suivant :

  • In Adobe Flex, display video thumbnails of videos
  • In Flex, select a video file from the user’s local hard drive
  • In Flex and PHP, upload the file to the web server
  • In PHP and with Carbon Coder, transcode the video
  • In PHP and Flex, wait until the file is encoded
  • In Flex and with Adobe Flash Media Server, update the video thumbnail list
  • In Flex and with Flash Media Server, enable the user to click on a thumbnail and play it in the video player
août
29

Le flux designer-développeur en mutation

Si certains affichent un pessimisme quant à l’avenir des (info)graphistes, ceux-ci devraient plus craindre pour leur adaptation aux nouvelles technologies que pour la fausse concurrence des templates… En résumant :

Le métier de graphiste va et doit donc évoluer vers une conception plus proche du designer objet (ou industriel) [...]. Les graphistes vont donc devoir se repositionner.
Mais pour cela les designers graphiques doivent s’impliquer techniquement afin de mieux appréhender les possibilités et les contraintes de ces nouveaux outils. Il faut tout de même signaler qu’il est beaucoup plus facile pour un ingénieur/développeur de devenir un bon designer que le contraire (regardez l’exemple de John Maeda).

mswork.png

Car la vraie originalité d’un créa pliera tout Template à 60$ autant que l’audace du marketing peut palier son manque de technicité – et toc.
Il est vrai qu’avec ce Web 2.0 l’internet à eu tendance s’uniformiser… mais les couleurs trendy, les logos aux reflets clairs commencent à faire leur temps – assez pour que l’internaute ne soit plus surpris, l’utilisateur est beaucoup plus aguerri et le bon vieux drag&drop ou l’auto complétion Ajax commencent à s’essouffler – assez pour que le client ne s’extasie plus. Qu’à cela ne tienne! Les nouvelles technologies – riches – arrivent.
read more

août
23

Sharepoint prejudice

MOSS 2007Microsoft Office Sharepoint Server 2007 (MOSS 2007) vise clairement les Si grands comptes, dans sa manière de rationaliser les processus, par son aspect collaboratif poussé ou encore pour sa gestion de portail et d’accès aux données.

Attardons-nous sur la face Web que permet l’outil. Quand on s’intéresse aux sites (et ici) basés sur MOSS 2007, on a l’impression que ce n’est qu’un aspect de l’outil justement. Les sites ne brillent pas pour leur originalité. L’ergonomie y est souvent austère et la qualité graphique n’est pas toujours au rendez-vous.

Ainsi, le choix d’un DSi pour MOSS 2007 tient -trop- souvent à faire part d’un service, de mettre un métier en avant au détriment d’un coté plus « ludique » et donc d’une image plus marquante.
Choisir de faire un site MOSS 2007 c’est d’après ce que l’on peut voir sur le web se lancer dans 3 types de réalisation :
read more