Implémentation d'un compte bancaire en utilisant Ajax dans un panier d'achat

Implémentation d'un compte en banque

Implémentation d'un compte bancaire est semblable à la mise en oeuvre d'un panier. La seule véritable différence est que vous avez besoin de sécurité. Par exemple, si les journaux maryjane sur son compte et elle indique l'URL / compte / maryjane, alors vous voulez seulement maryjane ou une personne appropriée pour afficher les données. N'importe qui d'autre devrait avoir une erreur d'identification de sécurité invalides. Le reste de cet article se concentrera sur la façon d'utiliser des cookies et l'authentification HTTP pour authentifier les utilisateurs:

• HTTP cookies: HTTP cookies sont des identificateurs envoyés dans l'en-tête HTTP entre le client et le serveur. Le serveur est chargé de générer un cookie, et le client est responsable d'envoyer le cookie au serveur pour une URL donnée et de ses descendants.

Authentification HTTP: En utilisant l'authentification HTTP, il est possible d'authentifier les utilisateurs. Ensuite, chaque fois que les utilisateurs de contenu demande d'un domaine donné URL, le client envoie les informations d'autorisation. Authentification HTTP est similaire à un cookie, sauf que les utilisateurs doivent s'authentifier. Que vous utilisiez les cookies ou l'authentification HTTP, les clients doivent envoyer une symbolique quand ils le désirent d'accéder à une URL donnée. Le serveur permet de valider si le jeton a la permission d'accéder à l'URL.

Utilisation de cookies pour autoriser l'accès

  

HTTP cookies4 ont une mauvaise réputation, en partie imméritée, et donc, beaucoup diront que vous ne devriez pas utiliser des cookies. Le problème avec les cookies ne pas avoir à faire avec leur théorie, mais plutôt avec leur mise en œuvre et ses ramifications. Par analogie, la vie réelle, envisager de conclure un centre commercial où quelqu'un vous donne un jeton à l'entrée, que vous pouvez prendre ou refuser . Si vous refusez le jeton et entrer dans le centre commercial, toutes les portes se fermer soudainement magasin. Vous pourrez vous promener au centre commercial, mais vous pouvez seulement regarder la marchandise par les fenêtres. Vous pouvez toujours visualiser le contenu et tout ce que l'offre en magasin, mais il est derrière une vitre. D'autre part, si vous acceptez le coup, le magasin restera ouvert les portes, et vous pouvez parcourir tous les produits. Pour être utile, les commis de magasin offre des recommandations sur les meilleures offres dans le mail. Pourtant, il ya une nuance foncée à l'expérience: le centre commercial est à regarder chaque pas que vous faites, et tout ce que vous regardez est suivie. Bien sûr, le centre commercial vous assure que les informations ne seront pas utilisées à d'autres fins, mais la question est de savoir où faire les recommandations ou des meilleures offres proviennent? Les jetons ou des cookies sont utilisés pour suivre les personnes. Je suis divisés quant à l'utilisation de cookies je ne trouve rien à leur sujet extrêmement préoccupant, et je ne suis enthousiasmé à leur sujet. Cookies HTTP sont un moyen pour une fin.

Génération de la Cookie

Il est possible de générer un flux HTTP cookie5 sans utiliser aucune aide de la bibliothèque. En raison de la prévalence de cookies, la plupart des bibliothèques côté serveur ont des classes ou de fonctions à générer des cookies repose sur quelques paramètres. Utilisation du serveur disponible bibliothèques côté est fortement recommandée. Génération du cookie en utilisant le serveur bibliothèques côté n'est pas difficile. Lorsque ASP.NET à l'aide, vous devez utiliser le code source suivant:

HttpCookie mycookie = new HttpCookie ( "sample", "myvalue"); mycookie.Path = "/ ajax/chap07"; Page.Response.Cookies.Add (mycookie);

Vous instancier un cookie (HttpCookie), et à Un minimum, vous spécifiez l'échantillon (clé) et la valeur (myvalue). La combinaison de touches paire de valeur est envoyée entre le client et le serveur. Le mycookie.Path propriété cookie précise pour laquelle Web et de ses descendants, le cookie est valide. Compare à l'authentification HTTP, le chemin de cookie est égal au royaume d'authentification HTTP. Vous ajoutez le cookie nouvellement créée à la réponse en utilisant la méthode Page.Response. Cookies.Add. Quand un cookie est ajouté, la réponse HTTP va générer un cookie en utilisant le Set-Cookie-têtes HTTP, comme illustré par la réponse du serveur HTTP suivants:

HTTP/1.0 200 OK Serveur: Mono-XSP Server/1.1.13.0 Unix X-Powered-By: Mono Date: Tue, 28 Aug 2006 17:31:14 GMT Content-Type: text / html; charset = UTF-8 Set -Cookie: Exemple = myvalue; path = / ajax/chap05 Content-Length: 388 Keep-Alive: timeout = 15, max = 99 Connection: Keep-Alive

L'échantillon témoin a une valeur de myvalue et est valide pour le chemin / ajax/chap05. Parce qu'il n'y a pas de valeur prend fin, le cookie est valable uniquement pour la durée de vie du navigateur. Si le navigateur est fermé, le cookie est supprimé, se comportant ainsi comme une authentification basée sur HTTP identifiant utilisateur.

Comprendre comment le client gère le Cookie

Lorsque le client reçoit le cookie, le cookie sera sauvegardé automatiquement si le client est un navigateur ou de l'objet XMLHttpRequest du navigateur. En effet, le code JavaScript côté client n'a absolument rien à voir avec le cookie attribué, car tout se passe de façon transparente . Par exemple, si un navigateur charge une page et un cookie est attribué pour l'ensemble du domaine, le cookie sera envoyé lorsque l'objet XMLHttpRequest appelle une page à l'intérieur du domaine. Le stockage des informations sensibles, telles que mots de passe ou un autre type de renseignements personnels, à l'intérieur Le cookie n'est pas recommandée. Un cookie est une référence à l'information, pas de référentiel d'information. Lorsque les utilisateurs ont été authentifiés par un autre moyen, un cookie doit être utilisé que comme un signe pour identifier l'utilisateur.

L'identification d'un utilisateur avec un cookie

Lorsque le serveur génère un cookie, il ne signifie rien, parce qu'un "cookie" est simplement un jeton. Le cookie doit être recoupés avec un utilisateur spécifique. Pour crossreference le jeton, vous devez appliquer un mécanisme d'authentification. Vous pouvez utiliser un des deux mécanismes d'authentification. Premièrement, vous pouvez lier le cookie avec l'authentification HTTP. Deuxièmement, vous pouvez créer une page HTML qui associe le cookie d'un utilisateur. Utilisation de l'authentification HTTP pour associer un utilisateur avec un cookie impliquerait la protection d'un fichier qui nécessite une authentification explicite. Lorsque l'utilisateur est authentifié en utilisant l'authentification HTTP, le fichier protégé est responsable pour l'association des cookies et des informations d'authentification. L'utilisateur n'a pas besoin d'être authentifié en utilisant une authentification HTTP. Un formulaire HTML peut être utilisé en remplacement. En utilisant le formulaire HTML, vous êtes responsable de fournir le code qui gère un utilisateur. En raison de ce code ajouté, le mécanisme d'authentification HTTP est privilégiée, car elle est la base du protocole HTTP.

Utilisation de l'authentification HTTP

HTTP d'authentification est probablement l'une des techniques les plus sous-utilisée de la création d'un identifiant d'utilisateur. La plupart des applications Web ont tendance à préférer les cookies HTTP, mais l'authentification HTTP offre quelques yet-to-be-a discuté des options que les cookies HTTP n'en ont pas. En début des années nonante, l'authentification HTTP n'était pas bien connue et a été jugée globalement précaires, parce que le client serait en permanence envoyer le nom d'utilisateur et mot de passe pour le serveur à chaque fois qu'une autorisation a été effectuée. Pour contourner le problème de sécurité, une forme plus sécurisée de l'authentification HTTP a été créé, appelé L'authentification HTTP Digest. HTTP Digest authentification n'a pas été largement diffusé dans les premiers jours Web. Bien sûr, aujourd'hui ce n'est pas le cas, comme tous les navigateurs, ou du moins la plupart des navigateurs, le soutien d'authentification HTTP Digest. Authentification HTTP est à la fois une bénédiction et une malédiction, dans la mesure où les utilisateurs doivent s'authentifier eux-mêmes quand ils le quitter et redémarrer le navigateur. La bénédiction est que les informations d'authentification ne sont pas envoyées automatiquement, et la malédiction est que les utilisateurs doivent s'authentifier avant de commencer une session sur le site AWeb. Certains mai envisager d'exiger d'être authentifié un inconvénient, mais quand la sécurité est importante, en utilisant l'authentification HTTP permet de donner l'autorisation pour l'utilisateur identifié. Au niveau technique, HTTP d'authentification est un mécanisme par lequel un utilisateur demande le contenu d'une ressource, et le serveur délivre un défi, en demandant pour l'identification. Après que l'utilisateur saisit les informations appropriées, le serveur authentifie l'utilisateur. Si l'authentification fonctionne, le navigateur télécharge la représentation de la ressource. A HTTP Digest conversation typique d'authentification est décrit dans les étapes suivantes. Le processus commence avec le client demande une ressource:

GET / test / HTTP/1.1 Host: Jupiter: 8100 User-Agent: Mozilla/5.0 (compatible; PPC Mac OS X Mach-O; EN-US; rv: 1.7.8) Gecko/20050511 Accept: text / xml , application / xml, application / xhtml + xml, text / html; q = 0.9, text / plain; q = 0.8, image / png ,*/*; q = 0.5 Accept-Language: fr-fr, fr; q = 0.5 Accept-Encoding: gzip, deflate Accept-Charset: ISO-8859-1, utf-8; q = 0.7, *; q = 0.7 Keep-Alive: 300 Connection: keep-alive protection de la ressource, et donc le serveur mettra au défi pour une authentification: HTTP/1.1 401 Authorization Required Date: Sun, 27 Aug 2006 14:00:05 GMT Server: Apache/2.0.53 (Ubuntu) PHP/4.3.10-10ubuntu4 WWW-Authenticate: Digest realm = " domaine privé ", nonce =" 0hvlrVH/AwA = 8225d4804076a334d81181695204fee405adaaee ", algorithm = MD5, domain =" / test ", qop =" auth "Content-Length: 497 Keep-Alive: timeout = 15, max = 100 Connection: Keep - Alive Content-Type: text / html; charset = iso-8859-1

 

Le client reçoit le code d'erreur HTTP 401 et cherche l'en-tête HTTP WWW-Authenticate. La valeur de HTTP WWW-Authenticate contient le mécanisme d'authentification est demandée. Dans cet exemple, HTTP Digest authentification est demandée. En remarque, il est possible d'utiliser l'authentification de base, mais parce qu'elle n'est pas considérée comme sûre, elle est évitée. Comme une réponse à ce défi, le navigateur génère une boîte de dialogue demandant un nom d'utilisateur et mot de passe. L'utilisateur tape le nom d'utilisateur et mot de passe, ce qui force le navigateur à émettre de nouveau la demande initiale de l'information ajoutée authentification utilisateur, comme illustré ici:

GET / test / HTTP/1.1 Host: localhost: 8100 User-Agent: Mozilla/5.0 (compatible; PPC Mac OS X Mach-O; EN-US; rv: 1.7.8) Gecko/20050511 Accept: text / xml , application / xml, application / xhtml + xml, text / html; q = 0.9, text / plain; q = 0.8, image / png ,*/*; q = 0.5 Accept-Language: fr-fr, fr; q = 0.5 Accept-Encoding: gzip, deflate Accept-Charset: ISO-8859-1, utf-8; q = 0.7, *; q = 0.7 Keep-Alive: 300 Connection: keep-alive Autorisation: Digest username = "cgross", realm = "Domaine Privé", nonce = "0hvlrVH/AwA = 8225d4804076a334d81181695204fee405adaaee", uri = "/ test /", algorithm = MD5, response = "fc4ec419438f87a540d8898a537ea401", qop = auth, nc = 00000001, cnonce = "01b6730aae57c007"

La demande qui en résulte est semblable à la demande initiale, sauf qu'il ya un supplément d'en-tête HTTP Authorization. Lorsqu'il est confronté à la même demande d'URL, la recherche de serveur pour l'en-tête HTTP Authorization. Si le serveur trouve l'en-tête, le serveur va vérifier l'information et, en fonction de la vérification, soit retourner une autre erreur HTTP 401, provoquant le navigateur pour générer une boîte de dialogue qui demande à l'utilisateur pour s'authentifier, ou d'envisager l'utilisateur authentifié. Si les informations fournies authentification est correcte, la représentation associée est téléchargé. Quand vous utilisez l'authentification HTTP, l'en-tête HTTP d'autorisation est envoyée pour toutes les URL et de leurs personnes à charge qui ont été précisés par le WWW-Authenticate tête envoyé par le serveur. Dans cet exemple, le domaine de valeur = "/ test" renvoie à la même adresse URL / test et ses dépendances.

Mettre en œuvre l'authentification HTTP

Vous ne devez pas écrire du code qui gère l'authentification HTTP. Tous les serveurs Web sont capables de gérer l'authentification HTTP, et vous devriez le laisser comme un exercice administratif. Cela ne signifie pas que vous n'utilisez pas l'authentification HTTP. Vous avez encore besoin de savoir si un utilisateur est authentifié, et vous avez besoin d'associer ce dernier à des informations identifiant l'utilisateur. Du point de vue programmatique, les informations d'authentification sont disponibles par le serveur fourni par la structure demande.

Lorsque l'authentification Il n'est pas nécessaire

L'un des effets secondaires de l'authentification HTTP est que le contenu est habituellement soit protégé ou non protégé. Traditionnellement, et c'est pourquoi les cookies sont utilisés authentification HTTP ne peut pas être désactivé pour une ressource, puis rallumé de nouveau pour la même ressource. Ce serait confondre les utilisateurs, car telle qu'elle est actuellement, l'authentification HTTP est un paramètre global et non un paramètre individuel. En d'autres termes, si l'authentification est requise pour un, alors il est nécessaire pour tous. Cela pourrait poser un problème. Disons qu'un utilisateur est naviguez sur un site et veut acheter quelque chose, que l'utilisateur aura besoin d'un panier. Toutefois, un identifiant d'utilisateur est nécessaire pour mettre en œuvre un panier. Pour créer un panier d'achat, les ressources non protégés doivent être protégés, mais la protection est global, donc tout le monde aurait besoin d'un panier en parcourant la première page d'un site d'achats et de commencer à acheter quelque chose. Nice idea pour relancer une économie, mais il ne va pas se passer. Pour contourner ce problème, parfois de protection, vous pouvez utiliser une technique d'authentification HTTP, comme suit: 1. Laisser l'utilisateur naviguer sur le site comme d'habitude (par exemple, http://mydomain.com/browse). 2. Sur chaque page consultée, ajouter un lien protégé pour indiquer que l'utilisateur veut être authentifié (http://mydomain.com/browse/authenticate). 3. Lorsque l'utilisateur clique sur le lien d'authentification après l'autorisation, les royaumes HTTP (domaines) qui incluent des contenus non protégés sont affectés dans la réponse (http://mydomain.com/browse). 4. Lorsque l'utilisateur navigue sur le Web http://mydomain.com/browse, des informations d'identification d'utilisateur est envoyé, même si elle n'est pas requise. Cette astuce fonctionne très bien si vous utilisez l'authentification HTTP Digest. Le texte suivant Apache HTTPD exemple de configuration utilise cette technique:

Répertoire "/ var / www / browse / authentifier"> AllowOverride AuthConfig AuthType Digest AuthDigestDomain / browse / browse / authentifier AuthDigestFile "/ etc/apache2/digestpasswd" AuthName "Private Domain" Require valid-user 

La technique est mis en œuvre par l'élément de configuration AuthDigestDomain, où les deux URLs / navigation et / browse / authentifier sont référencés. Parce que l'élément de configuration le répertoire des références URL / browse / authentifier, de n'utiliser que l'URL / browse / authentifier sera mis au défi d'une authentification. Pour montrer que la technique fonctionne effectivement, envisager la conversation suivante HTTP. D'abord, une demande est faite d'une ressource non protégés:

GET / browse / HTTP/1.1 Host: Jupiter: 8100 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv: 1.7.5) Gecko/20041220 K-Meleon/0.9 Accept: text / xml, application / xml, application / xhtml + xml, text / html; q = 0.9, text / plain; q = 0.8, image / png ,*/*; q = 0.5
Le serveur répond comme d'habitude avec un code de retour HTTP 200, ce qui amène un client à charger la page qui s'affiche. Ensuite le client fait une autre demande pour le lien protégées, parce que l'utilisateur souhaite faire des achats et a besoin d'être authentifié. Le client fait la demande suivante pour le contenu protégé:
GET / browse / authentifier HTTP/1.1 Host: 192.168.1.103:8100 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv: 1.7.5) Gecko/20041220 K-Meleon/0.9 Accept : text / xml, application / xml, application / xhtml + xml, text / html; q = 0.9, text / plain; q = 0.8, image / png ,*/*; q = 0.5 Le serveur répond avec un défi d'authentification: HTTP/1.1 401 Authorization Required Date: Thu, 28 Aug 2006 16:08:28 GMT Server: Apache/2.0.53 (Ubuntu) PHP/4.3.10-10ubuntu4 WWW-Authenticate: Digest realm = "Private Domain", nonce = "yiLhlmf / AWA = e1bafc57a6151c77e1155729300132415fc8ad0c", algorithm = MD5, domain = "/ browse / browse / authentifier", qop = "auth" Content-Length: 503 Content-Type: text / html; charset = iso-8859-1
Dans la réponse du serveur pour l'identificateur de domaine, une ressource non protégée est définie. C'est la technique utilisée pour envoyer des informations d'autorisation pour les contenus non protégés. Le client répond avec l'authentification utilisateur, comme suit:
GET / browse / authentifier HTTP/1.1 Host: 192.168.1.103:8100 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv: 1.7.5) Gecko/20041220 K-Meleon/0.9 Accept : text / xml, application / xml, application / xhtml + xml, text / html; q = 0.9, text / plain; q = 0.8, image / png ,*/*; q = 0.5 Authorization: Digest username = "cgross" , realm = "Private Domain", nonce = "yiLhlmf / AWA = e1bafc57a6151c77e1155729300132415fc8ad0c", uri = "/ browse / authentifier", algorithm = MD5, response = "c9b5662c034344a06103ca745eb5ebba", qop = auth, nc = 00000001, cnonce = "082c875dcb2ca740"
Après l'authentification, le serveur permet le téléchargement de contenu protégé. Maintenant, si le client accède aux adresses non protégées, les informations d'autorisation sont transmises au serveur, comme illustré par la demande suivante:
GET / browse / morecontent / HTTP/1.1 Host: Jupiter: 8100 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv: 1.7.5) Gecko/20041220 K-Meleon/0.9 Accept: text / xml, application / xml, application / xhtml + xml, text / html; q = 0.9, text / plain; q = 0.8, image / png ,*/*; q = 0.5 Authorization: Digest username = "cgross", realm = "Private Domain", nonce = "yiLhlmf / AWA = e1bafc57a6151c77e1155729300132415fc8ad0c", uri = "/ browse / morecontent /", algorithm = MD5, response = "18ccd32175ce7a3480d5fbbc24de8889", qop = auth, nc = 00000005, cnonce = "0d448aca73b76eb1"

Pour cette demande, le client a envoyé des informations d'autorisation pour une URL qui ne nécessite pas d'authentification. Autrement dit, le mécanisme d'authentification est devenu un "cookie HTTP" mécanisme qui est contrôlé par le client. Le client est en plein contrôle du moment de devenir authentifié et le moment de rester anonyme. Vous devriez vous rappeler les points suivants:

• L'article de la mise en oeuvre d'un panier ou un compte bancaire consiste à définir une action d'URL et une URL unique.

• L'URL d'action est responsable de générer une URL unique.

• Vous pouvez considérer que l'URL unique d'être une URL personnalisée qui remplace le besoin de garder un serveur objet de session côté.

• Serveur d'objets de session côté ne sont pas utiles lorsque vous voulez écrire souple des services Web. Les exemples panier illustré que vous pouvez utiliser des caddies prédéfinis pour ajouter de la valeur à un magasin en ligne.

• Vous pouvez appliquer la redirection de l'URL d'action à l'URL unique en utilisant les 300 séries de codes d'état HTTP. Toutefois, cette série de codes de résultats d'état dans l'appelant XMLHttpRequest ne sachant pas ce que l'URL est unique.

• Le mécanisme de choix pour l'utilisation de XMLHttpRequest pour rediriger est d'utiliser le code de statut HTTP 201. Ce code signifie que d'une nouvelle ressource a été créée qui, dans une perspective théorique, correspond à l'intention du principe unique URL.

• Le serveur n'a généralement pas le suivi des URL uniques. C'est la responsabilité du client d'associer un utilisateur donné avec une URL unique particulier. Si l'URL unique est anonyme, comme un panier d'achat, alors vous devriez utiliser des cookies côté client. Si l'URL unique a des restrictions de sécurité, alors vous devriez utiliser le serveur de cookies côté ou de l'authentification HTTP.

• Lors de l'implémentation de sécurité, vous pouvez utiliser des cookies pour autant que les cookies ne sont pas utilisées pour générer le contenu. Les cookies sont utilisés pour autoriser l'accès à une ressource.

• Cookies et des mécanismes d'authentification HTTP ont la préférence des moyens utilisés pour mettre en oeuvre l'identification de l'utilisateur.

• Lors de l'implémentation de la fonctionnalité de redirection, vous ne pouvez pas en cache la réponse de l'action d'URL, car cela conduira à des problèmes de cohérence des données.

• URL uniques sont traitées sur le côté serveur en utilisant l'un des deux mécanismes: un mécanisme de réécriture d'URL prédéfinis, tels que Apache mod_rewrite, ou l'application d'un filtre qui vise un gestionnaire spécifique. Le mécanisme de choix est un filtre qui vise un gestionnaire spécifique, mais à des fins d'héritage, il est tout à fait acceptable d'utiliser un mécanisme de réécriture d'URL prédéfinie.

un article présenté par Sonja Lande


Disclaimer:Notre site n'est pas responsable du contenu de cet article. Webarticles est une ressource d'information gratuite.
Important: Cet article «Mettre en place un compte bancaire en utilisant Ajax dans un panier d'achat" a été traduit par un logiciel automatique. Nous nous sentons désolés pour les fautes d'orthographe que mai ont eu lieu. Nous vous remercions de votre compréhension.


Online: 306 users browsing the articles directory