Sécurisation d'une application flash/php/mysql

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Sécurisation d'une application flash/php/mysql

par damaskinos » 20 mai 2009, 23:53

Aurais-tu une idée pour les demandes d'enregistrement? Comment je fais pour savoir si c'est vraiment de mon application flash que vient la requete d'enregistrement?

Je vais voir ce qu'on dit sur le handshake.

Merci encore

par AB » 20 mai 2009, 23:32

Utiliser mysqli_real_escape_string pour protéger les requêtes et caster les entiers comme tu le fais est une bonne chose.

par damaskinos » 20 mai 2009, 23:17

okay okay

je vois c'est ca j'avais pas compris. Mais dis moi pour le reste ca semble ok.

par AB » 20 mai 2009, 22:53

Peut-être n'a tu pas vu ma dernière réponse... pour moi le salt est différent à chaque envoi du formulaire.

par damaskinos » 20 mai 2009, 22:40

OK ca je comprend, lui il fais un md5 du login de l'utilisateur et du password, c'est le principe du salt que j'arrive pas a comprendre peux-tu repondres a mon précédent POST et me dire si c'est ca.

merci encore

par AB » 20 mai 2009, 22:37

J'avais pas vu ta réponse.

Moi je génère un salt différent pour chaque envoi de formulaire.
Ta requête peut être simplifiée parce que tu peux envoyer par exemple le login en clair et puisqu'il se doit d'être unique tu n'a qu'a vérifier si la mixture sha1(mdp.sel) correspond; tu peux aussi faire sha1(sha1(mdp).sha1(sel)) pour compliquer

par AB » 20 mai 2009, 22:31

Sur le principe la fonction js ressemble à ça http://www.developpez.net/forums/d32278 ... chier-ini/

Le lien donne un exemple pas très bien codé :
A la place de onClick="doChallengeResponse(); return false;" dans l'input submit, une meilleure méthode est de faire <form action="#" method="post" id="identification" onsubmit="doChallengeResponse();">

par damaskinos » 20 mai 2009, 22:27

ok je vois,

Moi en fait quand un utilisateur s'enregistrait, je générais un salt coté serveur qui lui était propre, donc chaque utilisateur a un salt qui lui ai propre, donc à chaque fois qu'un utilisateur se connecte, je vérifie je fais une requete imbrique une qui retourne le sha1 que je concatene et sha1 avec le password dans la condition where. Ca me fait une requete plus complexe mais bon. De ta façon j'aurais un salt unique pour tout le monde c'est ca?

par AB » 20 mai 2009, 22:16

Le sel tu le connais côté serveur...
Ce n'est pas le sel que tu génère en javascript mais le sha1 de la mixture pasword.sel que tu envoie dans ton post.

par damaskinos » 20 mai 2009, 22:08

Je crois pas non, je suis desolé, il doit y avoir qq chose je loupe.

Mais dans ton cas je fais comment pour les authentification si le salt a ete généré coté client et jamais envoyé pour être gardé ?

par AB » 20 mai 2009, 21:55

Non,

Sur le principe, tu génères le sha1 - de ton pasword concaténé au sel - en javascript côté client et tu envoie cette donnée et uniquement celle-ci dans le post d'authentification.
Par ailleurs il faut que le sel soit différent pour chaque post.

T'as compris le principe ?

par damaskinos » 20 mai 2009, 21:46

ok je vois merci encore.

Vue que je suis en flash et action etant coté client, je crois ça reviendrais au même de e faire avec action script. Reste à voir si action script gère sha1 :? . Pour recapituler,

Je ferais un sha1 coté client du password, ensuite une fois recupéré sur le serveur je génère mon grain de sel et sha1 le tout c'est ?

par AB » 20 mai 2009, 21:37

Si ton formulaire soumet séparément un sha1 de ton pasword, c'est exploitable, c'est ce que je voulais dire.

par damaskinos » 20 mai 2009, 21:35

Merci de ta réponse mais pourrais-tu être un plus clair je vois pas trop l'avantage, désolé

par AB » 20 mai 2009, 21:21

Pour un maximum de sécurité concernant la soumission du formulaire d'authentification il serait bien que sha1($tab['password'].$tab['salt']) soit généré en javascript par le navigateur du visiteur, ainsi cette combinaison même interceptée serait inexploitable.