Différences

Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.

projet_dch:transactions [2011/05/19 21:39]
suitable créée
projet_dch:transactions [2011/05/19 21:50] (Version actuelle)
suitable [Cache et Rafraichissement de Pages]
Ligne 26: Ligne 26:
 Une solution proposée est d'utiliser un jeton qu'on invalide après le premier traitement.  Ainsi on commence avec  Une solution proposée est d'utiliser un jeton qu'on invalide après le premier traitement.  Ainsi on commence avec 
  
-<?php+  <?php
     $token = /* a randomly generated string */;     $token = /* a randomly generated string */;
     $_SESSION['_token'] = $token;     $_SESSION['_token'] = $token;
-?> +  ?> 
-<input type="hidden" name="_token" value="<?php echo $token; ?>" />+  <input type="hidden" name="_token" value="<?php echo $token; ?>" />
  
-et lors du traitement, on teste si $_POST['_token']==$token. Si oui, on traite et puis on change $token pour éviter que ce soit vrai si la post est répétée.+et lors du traitement, on teste si ''$_POST['_token']==$token''. Si oui, on traite et puis on change $token pour éviter que ce soit vrai si la post est répétée.
  
-L'inconvénient est qu'ainsi le formulaire ne peut servir que pour une seule opération, il me semble. L'utilisateur qui veut télécharger un deuxième ficher tout de suite derrière le premier (sans rafraichir la page) verra sa demande refusée car son token ne correspondra plus. Il faudra alors regénérer le formulaire avec un nouveau jeton en correspondance, et comment faire cela simplement et proprement, sans heurter les sensibilités de l'utilisateur?+L'inconvénient est qu'ainsi le formulaire ne peut servir que pour une seule opération, il me semble. L'utilisateur qui veut télécharger un deuxième ficher tout de suite derrière le premier (sans rafraichir la page) verra sa demande refusée car son token ne correspondra plus. Il faudra alors regénérer le formulaire avec un nouveau jeton en correspondence, et comment faire cela simplement et proprement, sans heurter les sensibilités de l'utilisateur?
  
 Dans l'appli CLE, le token est attribué pour la session (lors de login?). L'invalider pendant la session n'est donc pas une option, il faudrait un autre jeton géré par le controlleur. Dans l'appli CLE, le token est attribué pour la session (lors de login?). L'invalider pendant la session n'est donc pas une option, il faudrait un autre jeton géré par le controlleur.
 
projet_dch/transactions.txt · Dernière modification: 2011/05/19 21:50 par suitable
 
Sauf mention contraire, le contenu de ce wiki est placé sous la licence suivante :CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki