GRATUIT

Vos offres d'emploi informatique

Développeurs, chefs de projets, ingénieurs, informaticiens
Postez gratuitement vos offres d'emploi ici visibles par 4 000 000 de visiteurs uniques par mois

emploi.developpez.com

Comment rendre nos applications web plus sûres ?
Un développeur énonce les erreurs les plus communes aux programmeurs

Le , par Stéphane le calme, Chroniqueur Actualités
Dans un contexte où on assiste à une recrudescence des menaces informatiques ainsi que des révélations sur les programmes de surveillance des données à l'échelle gouvernementale comme PRISM, le débat autour de la vie privée et la protection des données digitales se voit relancé.

Nombreux sont ceux qui ont opté pour une sensibilisation de l'utilisateur à la sécurité, espérant certainement leur offrir un moyen plus sûr de se protéger. Un journaliste de technologie, ancien programmeur professionnel, a quant à lui choisi une autre approche quand il a répertorié les six erreurs les plus reproduites par les développeurs relatives à la sécurité, erreurs qu'il n'a pas manqué de qualifier de stupides.

La première erreur qu'il met en évidence est une mise en garde bien souvent répétée aux apprentis webmaster : « ne jamais faire confiance aux données utilisateur ». Il invite les développeurs à faire attention aux types de données qui transitent sur leurs sites. « si vous êtes chanceux les données en provenance de vos utilisateurs pourraient entraîner un plantage de votre application ou la rendre moche » rappelant que certains utilisateurs intelligents et mal intentionnés pourraient effacer votre base de données ou pire encore. « Vérifiez que le type de données que vous attendez est bel et bien celui que vous recevez, pas plus pas moins ».

Pour lui, monter son propre système de chiffrement est une mauvaise initiative. Il préconise l'utilisation de solutions ayant déjà fait leurs preuves. Il remarque également que beaucoup de développeurs, surtout du côté des novices, accordent trop facilement des privilèges d'administration. De plus il recommande de penser à la gestion d'erreurs : « C'est souvent lorsque votre code échoue que vous êtes le plus vulnérable » rappelle-t-il. Et enfin il préconise l'utilisation des protocoles SSL/HTTPS. « Il y a une raison pour laquelle Google se sert de HTTPS » assure-t-il en expliquant que la connexion en devient plus sûre.

L'avis d'un développeur : nous avons demandé à un membre de notre communauté, gangsoleil, de commenter ces propos. Pour lui, un des problèmes actuels de la sécurité des applications vient du fait que les développeurs n'ont pas été formés sur le sujet et il précise « Attention, je ne dis pas qu'ils ne savent pas développer une application, je dis qu'il leur manque quelques bases, que j'estime fondamentales, sur la conception logicielle. »

Il soutient l'avis du journaliste qui estime qu'un développeur devrait envisager le pire dans une métaphore très imagée : « De même qu'un avion doit être capable de voler aussi bien lorsqu'il fait beau que dans un orage, un code doit fonctionner dans les conditions normales, mais aussi dans les pires conditions. ». D'ailleurs à ce propos il donne en exemple un cas de figure à prendre en considération lors d'une conception : « Votre code se sert d'un fichier ou d'une base de données ? Oui, il doit être capable de ne pas crasher si je supprime (violemment) le fichier ou la base de données. »

Toutefois il n'est pas convaincu par l'exemple pris par le journaliste sur Google « Enfin, quant au fait que Google utilise HTTPS, je trouve cet exemple assez mauvais car Google n'utilise toujours pas HTTPS comme protocole par défaut pour la recherche -- d'où le plugin HTTPS everywhere de l'EFF. »

Source : Venturebeat

Et vous ?

Avez-vous remarqué d'autres erreurs chez les développeurs ?

Que préconisez-vous pour améliorer la sécurité des applications ?


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de Uther Uther - Expert éminent https://www.developpez.com
le 04/10/2013 à 11:50
Cet article enfonce beaucoup de portes ouvertes. Ces problèmes de sécurités principaux sont bien sur tous connus depuis longtemps et il est aisé de se renseigner dessus.
Le vrai souci pour moi, c'est que les sociétés ne prennent pas le temps de s'intéresser a la sécurité des applications car ça a un cout que la grande majorité des entreprises n'est pas prêt a payer.

Quant au SSL, c'est juste un point parmi tant d'autre et certainement pas le plus prioritaire. Ça évite certes que les saisies de l'utilisateur puisse être interceptés par un tiers au milieu. C'est pas difficile a mettre en place et on voit immédiatement un joli cadenas faussement rassurant.
Mais si le site web en lui même n'est pas sur, c'est bien plus dangereux et facile à exploiter.
Avatar de GeoTrouvePas GeoTrouvePas - Membre éprouvé https://www.developpez.com
le 04/10/2013 à 12:00
Merci pour cet article qui rappelle des concepts essentiels que l'on devrait avoir en tête en permanence. On pourrait même enlever le mot "web" dans le titre tellement ces recommandations me paraissent "universelles" (mise à part pour le HTTPS bien évidement).

Je suis particulièrement attaché au principe de ne jamais faire confiance à l'utilisateur. On dit souvent, par provocation, qu'il faut partir du principe que "l'utilisateur est un con". Ce n'est évidemment pas l'expression d'un mépris vis à vis de l'utilisateur mais simplement une façon de dire qu'il faut sans cesse imaginer le pire. Le seul moyen de s'en protéger est de contrôler systématiquement la qualité des données.
Avatar de imikado imikado - Rédacteur https://www.developpez.com
le 04/10/2013 à 12:08
Premier conseil: utiliser des frameworks
Deuxieme conseil: regarder et repertorier les outils et méthodes à utiliser pour sécuriser votre application

Le mkframework, (par exemple) propose une page listant les failles de sécurité, les parties prises en comptes par le framework ainsi que celles à la charge du développeur: http://mkdevs.com/security.html
Avatar de n5Rzn1D9dC n5Rzn1D9dC - Membre averti https://www.developpez.com
le 04/10/2013 à 12:33
Ca me rappel il y a quelques temps où je suis tombé sur un site gouvernemental qui se servait de la valeur "host" du header http pour créer une grande quantité des liens de chaque page du site.
Donc en mettant une ip en host (n'importe quelle ip ou nom d'hote), ça donnait:
http://x.x.x.x/index.html etc...
Et il y avait bien sur pleins de liens pointant vers du js ou des médias en tout genre.
Avatar de DrHelmut DrHelmut - Membre habitué https://www.developpez.com
le 04/10/2013 à 12:59
Pour faire des applis sûres (et performantes tant qu'à faire...) il faut :

1. Des développeurs QUALIFIES :

De mon expérience, de nombreux juniors sortent d'école sans savoir correctement développer, avec beaucoup de lacunes en logique booléenne, algorithmique et ensembliste.

Et le web, du coup, n'en parlons pas : il est peu ou pas du tout enseigné, et souvent bien mal. J'ai en tête l'exemple d'une école qui proposait des cours de GWT mais en aucune manière ne parle des fondamentaux du web, de javascript, des appels asynchrones, ect...

A mon sens, la faute incombe donc clairement d'abord aux écoles et à la qualité de l'enseignement, pas aidée par le fait que très souvent les enseignants sont chercheurs mais n'ont jamais pratiqué la 'vraie' informatique..

En second, la faute aux entreprises, qui ne forment pas assez leurs juniors et n'exigent pas non plsu des écoles qu'elle srelèvent leur niveau.

Entre les deux, la faute revient au junior, qui devrait se bouger les fesses et savoir que l'école ne lui apprend au final quasiment rien, et qu'il devrait lire et tester beaucoup de choses s'il veut être un bon développeur !

Et 5 ans après, beaucp de juniors qui étaient dans ce cas devienent alors 'experts techniques" dans les SSII classiques, et du haut de leur grande incompétence qu'ils ne soupçonnent hélas pas, ils réalisent alors des prouesses de mauivais code, et avec du mauvais code, je ne vosi pas comment on peut assurer la sécurité d'une appli... :p

2. Une volonté de MOYENS

Si un client a des exigeances fortes en matière de sécurité, il faut qu'il comprennent que cela a un côut; or, bien des SSII nivellent par le bas pour gagner les appels d'offres, et la réalisations des applications en souffre évidement.
De plus, les DSI sont souvent de simples managers dont les connaissances en informatique font rêver... et eux aussi exigent le mouton à 5 pattes: l'appication faite rapidement, qui est sécurisée, performante, et n'aura pas couté cher. Mais bien sûr...
Avatar de DrHelmut DrHelmut - Membre habitué https://www.developpez.com
le 04/10/2013 à 13:09
Citation Envoyé par imikado  Voir le message
Premier conseil: utiliser des frameworks

Avec modération, en connaissance du framework (pas un truc obscur fait par deux russes dans leur salon et sans doc) et surtout pas pour un junior !

De plus, autant les frameworks sont des raccourics géniaux je te l'accorde, autant ils ne dispensent pas (bien au contraire) de maitriser en amont les aspets de la sécurité !
Avatar de Jarodd Jarodd - Membre expérimenté https://www.developpez.com
le 04/10/2013 à 14:11
« Il y a une raison pour laquelle Google se sert de HTTPS »

Etre NSA compliant ?

Il préconise l'utilisation de solutions ayant déjà fait leurs preuves.

Ah oui, c'est bien ça...
Avatar de herdans herdans - Membre régulier https://www.developpez.com
le 04/10/2013 à 14:19
Les mesures de sécurité nécessitent un temps de mise en place qui dit délai, dit coût. Les développeurs sont des ouvriers, ils font ce qui est dans le cahier des charges, ni plus ni moins. On peut faire porter le blâme aux développeurs. Mais il n'y a pas de mauvais développeurs, il n'y a que des mauvais chefs. C'est à la hiérarchie d'insister sur l'exigence de sécurité, de fixer la barre et enfin de s'assurer de leur bonne application... le plus tôt possible
Avatar de imikado imikado - Rédacteur https://www.developpez.com
le 04/10/2013 à 14:26
Citation Envoyé par DrHelmut  Voir le message
Avec modération, en connaissance du framework (pas un truc obscur fait par deux russes dans leur salon et sans doc) et surtout pas pour un junior !

De plus, autant les frameworks sont des raccourics géniaux je te l'accorde, autant ils ne dispensent pas (bien au contraire) de maitriser en amont les aspets de la sécurité !

J'ai bien écrit:
Citation Envoyé par moi-même
Premier conseil: utiliser des frameworks
Deuxieme conseil: regarder et repertorier les outils et méthodes à utiliser pour sécuriser votre application(sous entendu du framework)

Avatar de Johnny P. Johnny P. - Membre actif https://www.developpez.com
le 04/10/2013 à 20:49
A mon sens, la faute incombe donc clairement d'abord aux écoles et à la qualité de l'enseignement, pas aidée par le fait que très souvent les enseignants sont chercheurs mais n'ont jamais pratiqué la 'vraie' informatique..

En effet la qualité de l'enseignement dans le développement logiciel / projet est déplorables , le but c'est de donner la matière et de pondre du code qui fonctionne mais les enseignants s'en fichent si oui ou non c'est correcte.

Le problème se situe aussi à l'opposé dans le fait que beaucoup de profs n'ont jamais réellement intégré une équipe ou développer un logiciel pro en entreprise ou bien il y a 30 ans en arrière...

Moralité à l'école on n'apprend jamais réellement à bien programmer mais uniquement avec les années et dans le monde pro.

Tout ça pour dire qu'il y'a deux axes : l'école = théorie , entreprise = pratique et l'école pense mieux savoir ce qui se passe en entreprise.
Offres d'emploi IT
Architecte technique des systèmes d'information H/F
Safran - Ile de France - Évry (91090)
Expert décisionnel business intelligence H/F
Safran - Ile de France - Évry (91090)
Consultant sap finance/controlling H/F
Safran - Ile de France - Vélizy-Villacoublay (78140)

Voir plus d'offres Voir la carte des offres IT
Contacter le responsable de la rubrique Accueil