|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre éprouvé
![]() Inscription : mai 2006 Messages : 694 ![]() |
Bonjour,
Je suis en train de programmer mon premier site web e-commerce en PHP / MySQL. J'utilise des sessions pour tracker mes utilisateurs, déjà inscrits ou pas. Je voudrais créer un panier temporaire pour stocker les commandes des utilisateurs avant qu'ils ne valident réellement ce panier. Ils peuvent quitter leur navigateur et revenir plusieurs jours après pour valider leurs choix précédents. Que me conseillez-vous pour sauvegarder ce panier temporaire? Un cookie? Une table MySQL? Une variable tableau? Autre chose? Merci! webrider. EDIT : j'héberge le site sur mon serveur, j'ai donc la possibilité de sauvegarder dans des fichiers! |
|
|
00
|
|
|
#2 |
|
Membre actif
![]() |
Désolé ma réponse sera succinte par manque de temps.
Je ne vois qu'un seule bonne solution pour ton application : stocker dans un cookies un identifiant unique qui fera la liaison avec une table mysql contenant les éléments du panier de l'utilisateur. Bien entendu il ne faudra pas laisser l'id directement acceccible ( et donc directement modifiable ) : un système de saltz, de cryptage sera indispensable. Voir plus simple : tu stock un cookies $ID_DU_PANIER-$CLE_ALEATOIRE , en php tu récupère les deux valeurs et tu forme une requete mysql du tyle : SELECT * FROM table WHERE id='$id' AND cle='$cle' |
|
00
|
|
|
#3 |
|
Membre éprouvé
![]() Inscription : mai 2006 Messages : 694 ![]() |
Un système de salz? Je ne connais pas mais je suis preneur, on en apprend tous les jours n'est-ce pas?
Donc au final je n'ai pas le choix que de stocker les paniers temporaires dans une BDD, je posais cette question pour justement éviter ça et gagner ce précieux temps d'accès... Certes pas long mais multiplié par un bon nombre d'utilisateurs ça devient important. Autre question, quelle est la durée de vie des variables session de PHP? Merci! webrider EDIT sécurité : dites-moi si je me trompe... Les articles contenus dans un panier temporaire ne sont pas fort sensibles, pourquoi du cryptage? |
|
|
00
|
|
|
#4 | |
|
Expert Confirmé
![]() Développeur informatique Inscription : février 2005 Messages : 2 982 ![]() |
Citation:
Pour le cryptage du contenu du panier ? Personnellement, je n'y vois pas d'interêt. Tant que le voleur de session peut pas acheter sur le compte de l'autre personne il y a pas de souci. Si dans un magasin une personne vole ton chariot il va quand même aller devoir payer à la caisse avec son argent.
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !... |
|
|
|
00
|
|
|
#5 |
|
Membre confirmé
![]() Inscription : décembre 2004 Messages : 343 ![]() |
La durée de vie est modifiable comme dit plus haut , par contre si l'utilisateur ferme le browser , la session est terminée.
Ce que tu pourrais faire c'est aussi stocké dans un cookies l'id des articles et la qté . Tu tests bien entendu la quantité ( > 0 && < x ) et lorsque tu recuperes les valeurs de ton cookies tu verifies que les id existent bien. Voila si tu verifies sur le serveur ces deux informations ( qté & id) je pense que c'est suffisant. A la limite lie le cookie a l'id du client comme ça si quelqu'un d'autre se connecte sur le poste et va sur ton site il n'aura pas les articles du MR D'autant plus que si un petit malin change les valeurs du cookies , ben tanpis pour lui : l'article changera et la qté changera c'est tout ce qu'il pourra faire. ( plus ce qu'a dit berceker ) Sinon une solution comme yotsumi . Si tu veux vraiment un truc secure mets en le moins possible sur le poste client ; mets en le moins possible dans le cookies. Juste un id qui est lié a une table temp et au login... bcp de vent pour pas grand chose :p a mon humble avis |
|
|
00
|
|
|
#6 |
|
Expert Confirmé
![]() Développeur informatique Inscription : février 2005 Messages : 2 982 ![]() |
Je dirais que le panier doit être stocké dans une table de façon temporaire. Ce panier est associé à un client identifié via un cookie possedant un identifiant. qui peut être couplé à différent parametre crypté. ip+navigateur+os+... ceci réduira le risque de vole de panier qui ne sert à rien pour le pirate.
Pourquoi ne pas placer l'article dans le cookie. Trop manipulable et la taille limité du cookie.
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !... |
|
|
00
|
|
|
#7 | |
|
Membre éprouvé
![]() Inscription : mai 2006 Messages : 694 ![]() |
Merci pour vos précieuses réponses!
Je pense que je vais retenir la solution suivante : Citation:
Le paiement sécurisé se fait sur un site externe, je ne stocke même pas les numéros de carte de crédit. webrider |
|
|
|
00
|
|
|
#8 |
|
Expert Confirmé
![]() Développeur informatique Inscription : février 2005 Messages : 2 982 ![]() |
Par contre attention. je viens d'y penser et de m'en souvenir. Faire en sorte qu'un pirate ne puisse pas placer des produits dans le panier de quelqu'un d'autre et que la personne effectue l'achat. Le pirate change l'adresse final en gros les données transmis sont faussées. Je me rappelle plus trop dans quel sens cela se faisait mais en cour il y avait se cas de figure.
Je reviens un peut au début. Il y a aussi une raison pour que les autres personne ne puisse pas voir le panier de quelqu'un d'autre. Admettons que c'est une erreur de dev pour x raison. Premierement, si c'est un site sensible genre dans le x les client voudrait effectuer leur achat en toute sécurité sans que l'un puisse savoir ce que l'autre achete s'il est ciblé. Maintenant, imaginons que suite à l'erreur l'un effectue l'achat de l'autre les enregistrements temporaires vont, normalement, être effacé. Ce qui aura pour conséquence qu'il y en aura un qui va se retrouver avec un panier vide. S'ils a bourré son chariot il ne reviendra pas. Perte d'un client. Donc même si à première vue cela ne présente pas un grand danger le vole de panier ça peut quand même mener à des situations désagréable. Donc c'est d'ajouter un detecteur de comportement anormale. Comme j'ai cité plus haut, c'est d'y ajouter le plus d'élément possible pour identifier une personne. ip,os,navigateur, ... Si l'un des éléments change c'est qu'il y a quelque chose qui ne va pas.
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !... |
|
|
00
|
|
|
#9 |
|
Membre éprouvé
![]() Inscription : mai 2006 Messages : 694 ![]() |
Oui c'est vrai tout ça est bien possible! Je vais étudier tes propositions pour les intégrer dans mon suivi de panier, je vais aussi utiliser SSL pour accroître encore la sécurité.
@++ webrider |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com