Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

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

0PARTAGES

7  3 
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 ?

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de Uther
Expert éminent sénior 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.
6  0 
Avatar de 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é !
4  0 
Avatar de 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.
1  0 
Avatar de 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.
1  0 
Avatar de messinese
Membre éclairé https://www.developpez.com
Le 08/10/2013 à 10:56
Bonjour, personnellement je suis tout à fait d'accord sur un point: les dev ne sont que trop (tellement) peu sensibilisé au domaine de la sécurité..pour eux un message d'erreur est simplement un message d'erreur et pourtant c'est en général le signe d'une possible exploitation dont ils n'ont pas la moindre idée!

De meme qu'ils ne voient pas le mal à faire un "printf(var)" et pourtant ceci ouvre une porte non négligeable et j'en passe..

Sorti d'école ou pas c'est la meme chose en matiere de sécurité, ça n'a rien à voir avec les fait de savoir coder ou pas et d'ailleurs que le dev ayant de l'expérience et sachant poser un joli algo sera meilleurs dans le domaine c'est se planter lourdement !

Tant que les boites penseront de maniere académique telle qu'illustré plus haut, la sécurité s'en ressentira il faut juste penser que c'est un monde a part et que bien souvent les "mec dans leur garages" sont bien meilleur que les pseudo ingé sécu ayant 10ans d'expérience!

Combien d'entres eux savent comment exploiter un BoF en full RoP ?
Combien en auront simplement entendu parler?
Comment pourrait il s'en protéger dans ce cas?

Bref tout ça pour dire que la sécu défensive c'est bien, savoir développer de jolies appli aussi mais tant qu'on à jamais abordé ces questions la on ne peux défendre correctement à mon humble avis.

C'est se qu'on appelle l'offsec (securité offesive) et à mes yeux c'est quand meme incontournable quoi qu'on en dise et meme avec les meilleurs outils du monde..

Cdlt.

ps: petit coup de gueule
1  0 
Avatar de imikado
Rédacteur https://www.developpez.com
Le 14/10/2013 à 10:43
@parou
Une application n'est jamais sur à 100%, mais comme pour son domicile, cela n'empêche pas de mettre une serrure à sa porte

C'est pour cela qu'il faut pour les applications web "publiques" critiques les faire auditer par une société dont c'est le métier.

Idem pour le framework, le faire vérifier, voir donner les sources à ces sociétés pour qu'elle aient toutes les cartes en main pour éprouver la sécurité de vos applications.
1  0 
Avatar de 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...
1  1 
Avatar de 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...
0  0 
Avatar de herdans
Membre habitué 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
1  1 
Avatar de 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)
0  0 
Contacter le responsable de la rubrique Accueil

Partenaire : Hébergement Web