Die Implementierung eines Bank-Konto mit Ajax in einen WarenkorbDie Umsetzung eines BankkontosDie Umsetzung eines Bankkontos ist vergleichbar mit der Umsetzung eines Einkaufswagens. Der einzige wirkliche Unterschied ist, dass Sie Sicherheit brauchen. Zum Beispiel, wenn maryjane meldet sich ihretwegen und sie auf die URL / account / maryjane, dann möchten Sie nur maryjane oder eine geeignete Person, um die Daten anzuzeigen. Wer sonst sollte eine ungültige Anmeldeinformationen Fehlers zu erhalten. Der Rest dieses Artikels wird zur Aktivierung von Cookies und HTTP-Authentifizierung verwenden, um Benutzer zu authentifizieren zu konzentrieren: • HTTP Cookies: HTTP-Cookies sind Kennungen, im HTTP-Header zwischen dem Client und dem Server gesendet. Der Server ist für die Erzeugung eines Cookie verantwortlich ist, und der Client für das Senden der Cookie an den Server für eine verantwortungsvolle einer gegebenen URL und ihre Nachkommen. • HTTP-Authentifizierung Einsatz von Cookies zu erlauben Access
HTTP cookies4 haben einen schlechten Ruf, teilweise unverdient, und daher werden viele einwenden, dass man keine Cookies verwenden sollten. Das Problem mit den Cookies nicht, um ihre Theorie zu tun, sondern mit deren Umsetzung und Auswirkungen. As a real-life analog erwägen, ein Einkaufszentrum, wo jemand Ihnen ein Zeichen am Eingang, die Sie entweder annehmen oder ablehnen können . Wenn Sie sich weigern, das Zeichen und geben Sie das Einkaufszentrum, die alle das Geschäft plötzlich Türen zu schließen. Sie können die Mall zu wandern, aber Sie können nur auf die Ware durch die Fenster schauen. Sie können immer noch den Inhalt und alles, was die Shop-Angebote, aber es ist hinter Glas. Auf der anderen Seite, wenn Sie das Zeichen zu akzeptieren, das Geschäft Türen offen bleiben, und Sie können alle Produkte zu durchsuchen. Hilfreich zu sein, bieten die Ladengehilfen Empfehlungen für die besten Angebote im Einkaufszentrum. Doch es gibt einen dunklen Unterton auf die Erfahrung: das Einkaufszentrum beobachtet jeden Schritt, den Sie machen, und alles, was Sie sehen erfasst wird. Natürlich, versichert der Shopping-Mall, dass die Informationen nicht für andere Zwecke verwendet werden, sondern die Frage ist, woher die Empfehlungen und besten Angebote kommen? Die Token oder Cookies werden verwendet, um Leute aufzuspüren. Ich bin gespalten in Bezug auf die Verwendung von Cookies finde ich nichts über sie äußerst beunruhigend, noch bin ich begeistert über diese. HTTP-Cookies sind ein Mittel zum Zweck. Generieren der Cookie Es ist möglich, erzeugen ein HTTP cookie5 ohne jede Hilfe aus einer Bibliothek. Aufgrund der Prävalenz von Cookies verweigern, haben die meisten Server-seitigen Bibliotheken Klassen oder Funktionen, die Cookies auf ein paar Parameter generieren. Mit der verfügbaren Server-Side-Bibliotheken ist sehr zu empfehlen. Generating das Cookie mit dem Server-seitigen Bibliotheken ist nicht schwer. Bei der Verwendung von ASP.NET, verwenden Sie den folgenden Quellcode: HttpCookie mycookie = new HttpCookie ( "Sample", "myvalue"); mycookie.Path = "/ ajax/chap07"; Page.Response.Cookies.Add (mycookie); Sie instanziieren ein Cookie (HttpCookie), und Minimalbestellfrist, geben Sie den Schlüssel (Sample) und Wert (myvalue). Die Kombination Schlüssel-Wert-Paar wird zwischen dem Client und Server gesendet. Die Eigenschaft cookie mycookie.Path gibt, für die URL und ihre Nachkommen das Cookie gültig ist. Vergleicht man diese auf HTTP-Authentifizierung, die Cookie-Pfad ist gleich der HTTP-Authentifizierung Reich. Sie fügen die neu erstellte Cookie, um die Antwort mit der Methode Page.Response. Cookies.Add. Wenn ein Cookie wird hinzugefügt, die HTTP-Antwort wird ein Cookie mit dem Set-Cookie HTTP-Header, wie aus der folgenden HTTP-Server-Antwort zu generieren: HTTP/1.0 200 OK Server: Mono-XSP Server/1.1.13.0 Unix X-Powered-By: Mono Date: Mon, 28 Aug 2006 17:31:14 GMT Content-Type: text / html; charset = "UTF-8 Set -Cookie: Sample = myvalue; path = / ajax/chap05 Content-Length: 388 Keep-Alive: timeout = 15, max = 99 Connection: Keep-Alive Die Cookie-Probe hat einen Wert von myvalue und ist gültig für den Pfad / ajax/chap05. Da es keinen Wert abläuft, wird das Cookie nur für die gesamte Lebensdauer des Browsers gültig. Wenn der Browser geschlossen wird, wird das Cookie gelöscht, so benimmt sich wie ein HTTP-Authentifizierung-basierten Benutzer-Kennung. Verstehen, wie die Client Verwaltet die Cookie Wenn der Client das Cookie erhält, wird das Cookie automatisch gespeichert, wenn der Kunde ist ein Browser oder das XMLHttpRequest-Objekt des Browsers. In der Tat hat das JavaScript auf der Client-Seite absolut nichts mit den zugewiesenen Cookie tun, denn alles geschieht transparent . Zum Beispiel, wenn ein Browser lädt eine Seite, und ein Cookie für die gesamte Domain zugeordnet ist, wird das Cookie gesendet werden, wenn das XMLHttpRequest-Objekt ruft eine Seite innerhalb der Domäne. Speicherung sensibler Daten wie Passwörter oder jede Art von persönlichen Daten innerhalb von das Cookie wird nicht empfohlen. Ein Cookie ist eine Bezugnahme auf Informationen, nicht ein Repository für Informationen. Wenn der Benutzer durch die Verwendung anderer Mittel authentifiziert haben, sollten ein Cookie nur als ein Zeichen zur Identifizierung des Benutzers verwendet werden. Identifizierung eines Benutzers mit einem Cookie Wenn der Server ein Cookie generiert, bedeutet es nichts, weil ein Cookie ist ein Alibi. Das Cookie muss vernetzt mit einem bestimmten Benutzer verwiesen wird. Um crossreference das Token, müssen Sie für ein Authentifizierungs-Mechanismus. Sie könnten einer von zwei Authentifizierungsmechanismen. Erstens könnten Sie binden die Cookie mit HTTP-Authentifizierung. Zweitens könnte Sie eine HTML-Seite zu erstellen, dass die Gesellschafter das Cookie mit einem Benutzer. Verwenden von HTTP-Authentifizierung zu assoziieren ein Benutzer mit einem Cookie würde bedeuten, den Schutz einer Datei, die eine explizite Authentifizierung erforderlich ist. Wenn der Benutzer unter Verwendung von HTTP-Authentifizierung authentifiziert ist, wird die geschützte Datei für die Beteiligung der Cookie-Authentifizierung und Informationen verantwortlich. Der Benutzer muss nicht authentifiziert werden über HTTP-Authentifizierung. Ein HTML-Formular können stattdessen verwendet werden. Mit dem HTML-Formular, du bist für die Bereitstellung von Code, die ein Benutzer verwaltet verantwortlich. Wegen dieser zusätzlichen Code, ist der HTTP-Authentifizierungs-Mechanismus bevorzugt, weil sie die Basis des HTTP-Protokolls. Verwenden von HTTP-Authentifizierung HTTP-Digest-Authentifizierung. HTTP-Digest-Authentifizierung nicht weit in den frühen Web-Tage verteilt. Natürlich, heute ist das nicht der Fall, da mit jedem Browser oder zumindest die meisten Browser, die HTTP-Digest-Authentifizierung. HTTP-Authentifizierung ist ein Segen und ein Fluch, in die Benutzer selbst authentifizieren müssen, wenn sie beenden und neu starten den Browser. Der Segen ist, die eine Authentifizierung Informationen nicht automatisch gesendet, und der Fluch ist, dass Benutzer sich vor Beginn einer Tagung in AWeb Website authentifizieren müssen. Einige können prüfen, dass es einer authentifiziert werden ein Nachteil, aber wenn die Sicherheit wichtig ist, über die HTTP-Authentifizierung gewährleistet werden die richtigen Rechte auf dem identifizierten Benutzer. Auf technischer Ebene wird die HTTP-Authentifizierung ein Mechanismus, mit dem ein Benutzer den Inhalt einer Ressource, und Der Server gibt eine Herausforderung, für die Identifizierung bitten. Nachdem der Anwender die entsprechenden Informationen geht, wird der Server den Benutzer authentifizieren. Wenn die Authentifizierung arbeitet, lädt der Browser die Darstellung der Ressource. Ein typischer HTTP-Digest-Authentifizierung Gespräch ist in den folgenden Schritten beschrieben. Der Prozess beginnt mit dem Kunden den Antrag auf eine 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: de-de, en; 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-Die Ressource ist geschützt, und damit der Server wird Herausforderung für eine Authentifizierung: HTTP/1.1 401 Authorization Required Date: Fri, 27 Aug 2006 14:00:05 GMT Server: Apache/2.0.53 (Ubuntu) PHP/4.3.10-10ubuntu4 WWW-Authenticate: Digest realm = \ " privaten Bereich ", 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
Der Client empfängt die HTTP-Fehlercode 401 und sucht nach dem HTTP-Header WWW-Authenticate. Der Wert des HTTP WWW-Authenticate enthält, die Authentifizierungs-Mechanismus beantragt wird. In diesem Beispiel HTTP-Digest-Authentifizierung verlangt wird. As a side note, ist es möglich, die Standardauthentifizierung verwenden, sondern weil es nicht als sicher, wird vermieden. Als Antwort auf die Herausforderung, generiert der Browser eine Dialogbox und fragt nach einem Benutzernamen und Passwort ein. Der Benutzer gibt den Benutzernamen und das Passwort, das der Browser, um die ursprüngliche Anfrage mit dem zusätzlichen Benutzer-Authentifizierung Informationen Neuausstellung Ursachen, wie hier gezeigt: 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: de-de, en; 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 Authorization: Digest username = "cgross" realm = "Privater Bereich", nonce = "0hvlrVH/AwA = 8225d4804076a334d81181695204fee405adaaee", uri = "/ test /", algorithm = MD5, response = "fc4ec419438f87a540d8898a537ea401", qop = auth, nc = 00000001, cnonce = "01b6730aae57c007" Die daraus resultierende Wunsch ist vergleichbar mit dem ersten Antrag, es sei denn, dass es eine zusätzliche HTTP-Header, Autorisierung. Wenn konfrontiert mit der gleichen URL-Anfrage, der Server sucht nach den Autorisierungs-HTTP-Header. Wenn der Server den Header findet, wird der Server die Informationen zu überprüfen und dann, je nach der Prüfung, entweder wieder einen anderen HTTP 401-Fehler, so dass der Browser eine Dialogbox, die den Benutzer auffordert, sich zu authentifizieren, oder der Benutzer authentifiziert betrachten zu generieren. Falls das mitgelieferte Authentifizierung richtig informiert bin, ist die damit verbundene Darstellung heruntergeladen werden. Bei der Verwendung von HTTP-Authentifizierung, Autorisierung ist der HTTP-Header für alle URLs geschickt und deren Angehörige, die wurden von der angegebenen WWW-Authenticate-Header sendet der Server. In diesem Beispiel ist die Wertebereich = "/ test" bezieht sich auf die einzelnen URL / test und ihre Abhängigkeiten. Umsetzung HTTP-Authentifizierung Sie sollten nicht schreiben jeder Code, der verwaltet die HTTP-Authentifizierung. Alle Web-Server sind für die Verwaltung HTTP-Authentifizierung kann, und Sie sollten dies als eine administrative Aufgabe zu verlassen. Dies bedeutet nicht, dass Sie nicht die HTTP-Authentifizierung verwenden. Sie müssen noch wissen, ob ein Benutzer authentifiziert ist, und Sie müssen zu verknüpfen, dass Benutzer die Benutzer-ID Informationen. Aus programmatischer Sicht ist die Authentifizierungs-Informationen vom Server zur Verfügung, vorausgesetzt Request-Struktur. Wenn die Authentifizierung ist nicht notwendig Eine der Nebenwirkungen von HTTP-Authentifizierung ist, dass der Inhalt in der Regel entweder geschützt oder nicht geschützt. Traditionell und aus diesem Grund Cookies verwendet werden, HTTP-Authentifizierung kann nicht für eine Ressource ausgeschaltet werden und wandte sich dann wieder auf für die gleiche Ressource. Dass die Nutzer verwirren würde, weil, wie es jetzt steht, ist die HTTP-Authentifizierung eine globale Einstellung und nicht um eine individuelle Einstellung. Mit anderen Worten, wenn Authentifizierung erforderlich ist für einen, dann ist es für alle notwendig. Das ist ein Problem darstellen könnte. Nehmen wir an, ein Benutzer Surfen in einer Website und möchte etwas kaufen, dass Benutzer einen Warenkorb benötigen. Allerdings ist eine Benutzer-ID erforderlich, um einen Warenkorb umzusetzen. Um einen Warenkorb anlegen, ungeschützte Ressourcen müssen geschützt werden, aber der Schutz ist global, so dass alle müssten einen Warenkorb, nachdem das Surfen im ersten Seite eine Shopping-Site ein und starten Sie etwas zu bekommen. Nette Idee, um Starthilfe eine Wirtschaft, aber es ist nicht passiert. Um dieses Problem der manchmal Schutz, können Sie eine HTTP-Authentifizierung Technik verwenden, wie folgt: 1. Lassen Sie den Benutzer besuche die Website wie gewohnt (z. B. http://mydomain.com/browse). 2. Auf jeder Seite durchsucht, fügen Sie einen geschützten Link, um anzuzeigen, dass der Benutzer authentifiziert werden (http://mydomain.com/browse/authenticate) will. 3. Klickt der Benutzer auf den Link Authentifizierung nach der Autorisierung, die HTTP-Bereichen (Domains), dass die ungeschützten Inhalt sind in der Antwort zugeordnet sind (http://mydomain.com/browse). 4. Wenn der Benutzer durchsucht die URL http://mydomain.com/browse, Benutzer-Informationen gesendet wird, obwohl es nicht erforderlich ist. Dieser Trick funktioniert sehr gut, wenn Sie HTTP-Digest-Authentifizierung. Die folgenden Apache HTTPD Beispiel-Konfiguration verwendet diese Technik: Verzeichnis "/ var / www / browse / Authentifizierung"> AllowOverride AuthConfig AuthType Digest AuthDigestDomain / browse / browse / authentifizieren top Sonstige Änderungen top "/ etc/apache2/digestpasswd" AuthName "Privater Bereich erforderlich" valid-user Die Technik wird durch die Konfiguration Punkt umgesetzt AuthDigestDomain, wo sowohl die URLs durchsuchen und / / browse / authentifizieren verwiesen wird. Da der Configuration Item-Verzeichnis auf die URL / browse / authentifizieren, nur die URL / browse / Authentifizierung wird für eine Authentifizierung angefochten werden. Um zu verdeutlichen, dass die Technik tatsächlich funktioniert, sollten Sie folgende HTTP-Gespräch. Zunächst wird ein Antrag auf eine ungeschützte Ressourcen gemacht: GET / browse / HTTP/1.1 Host: jupiter: 8100 User-Agent: Mozilla/5.0 (compatible; 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,5Der Server antwortet wie üblich mit einem HTTP-Return-Code 200, die der Kunde verursacht, der daraufhin angezeigten Seite zu laden. Der Client macht einen weiteren Antrag auf die geschützte Verbindung, weil der Nutzer will, um einzukaufen und muss beglaubigt werden. Der Kunde stellt folgende Anfrage für den geschützten Inhalten: GET / browse / authentifizieren HTTP/1.1 Host: 192.168.1.103:8100 User-Agent: Mozilla/5.0 (compatible; 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 Der Server antwortet mit einem Authentifizierungs-Herausforderung: HTTP/1.1 401 Authorization Required Date: Mon, 28 Aug 2006 16:08:28 GMT Server: Apache/2.0.53 (Ubuntu) PHP/4.3.10-10ubuntu4 WWW-Authenticate: Digest realm = "Privater Bereich", nonce = "yiLhlmf / AWA = e1bafc57a6151c77e1155729300132415fc8ad0c", algorithm = MD5, domain = "/ browse / browse / authenticate", qop = "auth" Content-Length: 503 Content-Type: text / html; charset = "iso-8859-1In der Antwort des Servers für die Domain-Kennung, eine ungeschützte Ressource definiert ist. Dies ist die Technik, um Informationen für die Genehmigung ungeschützten Inhalt zu schicken. Der Kunde meldet sich mit Benutzer-Authentifizierung, wie folgt: GET / browse / authentifizieren HTTP/1.1 Host: 192.168.1.103:8100 User-Agent: Mozilla/5.0 (compatible; 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 = "Privater Bereich", nonce = "yiLhlmf / AWA = e1bafc57a6151c77e1155729300132415fc8ad0c", uri = "/ browse / authenticate", algorithm = MD5, response = "c9b5662c034344a06103ca745eb5ebba", qop = auth, nc = 00000001, cnonce = "082c875dcb2ca740"Nach der Authentifizierung, sie ermöglicht der Server den Download von geschützten Inhalten. Nun, wenn der Kunde die ungeschützten URLs durchsucht erneut, wird die Ermächtigung Informationen an den Server übergeben, wie das folgende Anfrage dargestellt: GET / browse / morecontent / HTTP/1.1 Host: jupiter: 8100 User-Agent: Mozilla/5.0 (compatible; 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 = "Privater Bereich", nonce = "yiLhlmf / AWA = e1bafc57a6151c77e1155729300132415fc8ad0c", uri = "/ browse / morecontent /", algorithm = MD5, response = "18ccd32175ce7a3480d5fbbc24de8889", qop = auth, nc = 00000005, cnonce = "0d448aca73b76eb1" Zu diesem Antrag hat die Client-Autorisierungs-Informationen, für eine URL gesendet, die keine Authentifizierung benötigt. Einfach ausgedrückt, hat die Authentifizierungs-Mechanismus wird eine "HTTP-Cookie"-Mechanismus, durch den Kunden gesteuert wird. Der Client ist vollständig unter Kontrolle, wenn sie authentifiziert werden und wann sie anonym bleiben. Sie sollten die folgenden Punkte zur Erinnerung: • Der Artikel bei der Umsetzung einer Warenkorb-oder Bankkonto beinhaltet eine Aktion definiert werden URL und eine eindeutige URL. • Die Aktion URL zur Erzeugung einer eindeutigen URL verantwortlich. • Sie können die eindeutige URL Meinung nach einer personalisierten URL, dass die Notwendigkeit zu einem Server zu halten Seite Session-Objekt ersetzt. • Server-Side-Session-Objekte sind nicht nützlich, wenn Sie eine flexible Web-Services zu schreiben. Der Warenkorb Beispiele gezeigt, dass Sie vordefinierte Einkaufswagen benutzen können, um Wert zu einem Online-Shop hinzufügen. • Sie können die Umleitung von der Maßnahme zur Umsetzung der URL eindeutige URL mit dem HTTP-300-Serie der Status-Codes. Doch mit dieser Reihe von Status-Codes Ergebnisse in das XMLHttpRequest Anrufer nicht wissen, was die eindeutige URL. • Die bevorzugte Mechanismus bei der Verwendung von XMLHttpRequest umleiten ist es, die HTTP-Status-Code 201 zu verwenden. Dieser Code bedeutet, dass eine neue Ressource erstellt wurde, dass aus theoretischer Perspektive, die der Absicht der eindeutige URL-Prinzip. • Der Server der Regel nicht verfolgt werden, eindeutige URLs. Es liegt in der Verantwortung des Kunden zu verbinden einen bestimmten Benutzer mit einer bestimmten eindeutige URL. Wenn der eindeutige URL ist anonym, wie ein Warenkorb, dann sollten Sie die Client-Seite Cookies. Wenn der eindeutige URL hat die Sicherheit Beschränkungen, dann sollten Sie Server-Side-Cookies oder HTTP-Authentifizierung verwenden. • Wenn die Sicherheit erfüllt, können Sie Cookies benutzen, solange die Cookies nicht verwendet, um Inhalte zu generieren sind. Cookies werden verwendet, um Zugriff auf eine Ressource zu autorisieren. • Cookies und HTTP-Authentifizierung Mechanismen sind das bevorzugte Mittel zur Benutzeridentifikation umzusetzen. • Bei der Umsetzung der Funktionalität zur Umleitung, können Sie keine Zwischenspeicherung der Antwort von der Maßnahme URL, weil es die Datenkonsistenz Problemen führen wird. • Einzigartige URLs werden auf dem Server mit einer von zwei Mechanismen: eine vordefinierte URL-Rewriting Mechanismus, wie Apache mod_rewrite, oder die Durchführung von ein Filter, der auf ein bestimmtes verarbeitet. Die bevorzugte Mechanismus ist ein Filter, der auf ein bestimmtes Handler, sondern auch für Legacy-Zwecke ist es völlig in Ordnung, auf eine vordefinierte URL-Rewriting Mechanismus verwenden. Ein Artikel eingereicht von Sonja Lande Disclaimer:Unsere Website ist nicht verantwortlich für den Inhalt dieses Artikels. Webarticles ist eine kostenlose Informationsquelle. Wichtig: Dieser Artikel "Die Implementierung eines Bank-Konto mit Ajax in einen Warenkorb" wurde durch ein automatisches Software übersetzt. Wir fühlen uns leid für alle Rechtschreibfehler, die möglicherweise aufgetreten sind. Vielen Dank für Ihr Verständnis.
|
|||||
| Online: 506 users browsing the articles directory |
|
|