


Registrieren Sie sich bei PayPal Tutorial (2/3): Ein echtes Register mit PayPal -Projekt
Key Takeaways
- Das Tutorial deckt den Prozess der Einrichtung eines PayPal -Kontos und der Integration in ein Registrierungsformular und eine Datenbank für ein reales Projekt ab.
- Das Projekt beinhaltet das Erstellen eines Registrierungsformulars, die Umleitung von Benutzern in PayPal zur Zahlung und die Implementierung von PayPal IPN als Sicherungsplan für den Fall, dass Benutzer ihren Browser schließen.
- Das Tutorial enthält detaillierte Anweisungen zum Einrichten der Datenbankstruktur und der Benutzeroberfläche, zum Erstellen einer PayPal -Schaltfläche, zum Einrichten eines PayPal -Sandbox -Kontos sowie das Codieren von PDT- und IPN -Handlern.
- Das Tutorial beantwortet auch häufig gestellte Fragen zur Registrierung für PayPal, einschließlich der Sicherstellung der Kontosicherheit, der Registrierung ohne Kreditkarte, der Vorteile eines Geschäftskontos und der Registrierung von außerhalb der USA.
Kapitel zwei
In diesem Kapitel wird ein echtes Projekt vorgestellt: „Registrierung mit Zahlung“ von Anfang bis Ende, um eine bessere Erläuterung von PayPal -Konto -Einrichtung und -integration in das Registrierungsformular und die Datenbank zu erläutern.Projektszenario
- Erstens haben wir ein Registrierungsformular.
- Nachdem das Formular korrekt ausgefüllt wurde (alle Validierung bestanden), klickt der Benutzer auf die Schaltfläche "Register".
- dann zu paypal umleiten, Benutzer bezahlen die Registrierungsgebühr.
- Nachdem PayPal nach bezahlt wird, wird die Seite der Ergebnisse auf die Ergebnis weitergeleitet und 10 Sekunden automatisch auf unsere Website umgeleitet, dann verarbeitet PayPal PDT den Zahlungsdatensatz.
- Aber der Benutzer kann den Browser schließen, daher müssen wir PayPal IPN für den Sicherungsplan implementieren.
Datenbankstruktur
E-R-Diagramm:

- temp_register Tabelle: Temporäres Speicherkonto und Benutzerkennwort, Warten Sie auf die Zahlung. Wenn sie bezahlt werden, wird das Tupel gelöscht und wechselt in die Benutzertabelle.
- Zahlungstabelle: UID ist ein Fremdschlüssel, der auf Benutzer verweist, um Benutzerinformationen und Zahlungsinformationen zu verbinden.
- Benutzer Tabelle: Benutzerdaten Informationen, Token ist Überprüfungstoken in Bestätigungs -E -Mail. Wenn der Benutzer sein Benutzerkonto verifiziert hat, wird verifiziert als 1. festgelegt
Datenbankschema:
<span>CREATE TABLE IF NOT EXISTS <span>`payment`</span> ( </span><span><span>`payId`</span> int(11) NOT NULL AUTO_INCREMENT, </span><span><span>`timestamp`</span> bigint(20) DEFAULT NULL, </span><span><span>`paid`</span> float DEFAULT NULL COMMENT 'user paid amount returned by paypal', </span><span><span>`bankFee`</span> float DEFAULT NULL, </span><span><span>`currency`</span> varchar(4) DEFAULT NULL, </span><span><span>`txnId`</span> varchar(32) DEFAULT NULL COMMENT 'Transaction ID: specify single unique transaction from paypal. if this field is NOT NULL, means this payment has been process already. So if IPN returns to PHP, we can refuse to update our database.', </span><span><span>`status`</span> varchar(16) DEFAULT NULL, </span><span><span>`uid`</span> int(11) DEFAULT NULL COMMENT 'FK to users PK', </span><span>PRIMARY KEY (<span>`payId`</span>), </span><span>KEY <span>`uid`</span> (<span>`uid`</span>) </span><span>) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; </span><span>CREATE TABLE IF NOT EXISTS <span>`temp_register`</span> ( </span><span><span>`tRegId`</span> int(11) NOT NULL AUTO_INCREMENT, </span><span><span>`fullName`</span> varchar(255) DEFAULT NULL, </span><span><span>`uAcc`</span> varchar(255) DEFAULT NULL, </span><span><span>`uPwd`</span> varchar(32) DEFAULT NULL, </span><span>PRIMARY KEY (<span>`tRegId`</span>) </span><span>) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='prevent unpaid user take uAcc(UNIQUE) in our users table' AUTO_INCREMENT=1 ; </span><span>CREATE TABLE IF NOT EXISTS <span>`users`</span> ( </span><span><span>`uid`</span> int(11) NOT NULL AUTO_INCREMENT, </span><span><span>`fullName`</span> varchar(255) DEFAULT NULL, </span><span><span>`uAcc`</span> varchar(255) NOT NULL, </span><span><span>`uPwd`</span> varchar(32) NOT NULL, </span><span><span>`token`</span> varchar(32) DEFAULT NULL, </span><span><span>`verified`</span> tinyint(1) NOT NULL DEFAULT '0', </span><span><span>`priviledge`</span> enum('delegate','admin','developer') NOT NULL DEFAULT 'delegate', </span><span>PRIMARY KEY (<span>`uid`</span>) </span><span>) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; </span><span>ALTER TABLE <span>`payment`</span> </span><span>ADD CONSTRAINT <span>`payment_ibfk_1`</span> FOREIGN KEY (<span>`uid`</span>) REFERENCES <span>`users`</span> (<span>`uid`</span>);</span>
Benutzeroberfläche

Projekt Workflow
- füllen Sie das Formular aus, und alle Eingänge werden validiert.
- Schaltfläche Register auf Registrieren, um zu paypal umzuleiten.
- Paypal Sandbox „Jetzt bezahlen“:
- PayPal -Ergebnisseite umleiten.
- Warten Sie auf Weiterleitungen (PDT Works) Erfolg/Ausfallseite oder schließen Browser (IPN Works).
Paypal Sandbox
einrichten Bevor wir mit dem Codieren beginnen, müssen wir zuerst PayPal Sandbox -Konto einrichten. Nehmen wir an, Sie haben ein PayPal Developer -Konto registriert und ein Geschäftskonto und ein Käuferkonto in Sandbox erstellt.


1. Aktivieren Sie PDT und Einstellungen
Richten Sie Ihre PDT -Handler -Funktion auf, die URL aufruft.
2. Aktivieren Sie IPN und Einstellungen
Richten Sie Ihre IPN -Handler -Funktion auf, die URL aufruft.
2. Erstellen Sie eine PayPal -Taste und PayPal -Parametereinstellungen


<span>CREATE TABLE IF NOT EXISTS <span>`payment`</span> ( </span><span><span>`payId`</span> int(11) NOT NULL AUTO_INCREMENT, </span><span><span>`timestamp`</span> bigint(20) DEFAULT NULL, </span><span><span>`paid`</span> float DEFAULT NULL COMMENT 'user paid amount returned by paypal', </span><span><span>`bankFee`</span> float DEFAULT NULL, </span><span><span>`currency`</span> varchar(4) DEFAULT NULL, </span><span><span>`txnId`</span> varchar(32) DEFAULT NULL COMMENT 'Transaction ID: specify single unique transaction from paypal. if this field is NOT NULL, means this payment has been process already. So if IPN returns to PHP, we can refuse to update our database.', </span><span><span>`status`</span> varchar(16) DEFAULT NULL, </span><span><span>`uid`</span> int(11) DEFAULT NULL COMMENT 'FK to users PK', </span><span>PRIMARY KEY (<span>`payId`</span>), </span><span>KEY <span>`uid`</span> (<span>`uid`</span>) </span><span>) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; </span><span>CREATE TABLE IF NOT EXISTS <span>`temp_register`</span> ( </span><span><span>`tRegId`</span> int(11) NOT NULL AUTO_INCREMENT, </span><span><span>`fullName`</span> varchar(255) DEFAULT NULL, </span><span><span>`uAcc`</span> varchar(255) DEFAULT NULL, </span><span><span>`uPwd`</span> varchar(32) DEFAULT NULL, </span><span>PRIMARY KEY (<span>`tRegId`</span>) </span><span>) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='prevent unpaid user take uAcc(UNIQUE) in our users table' AUTO_INCREMENT=1 ; </span><span>CREATE TABLE IF NOT EXISTS <span>`users`</span> ( </span><span><span>`uid`</span> int(11) NOT NULL AUTO_INCREMENT, </span><span><span>`fullName`</span> varchar(255) DEFAULT NULL, </span><span><span>`uAcc`</span> varchar(255) NOT NULL, </span><span><span>`uPwd`</span> varchar(32) NOT NULL, </span><span><span>`token`</span> varchar(32) DEFAULT NULL, </span><span><span>`verified`</span> tinyint(1) NOT NULL DEFAULT '0', </span><span><span>`priviledge`</span> enum('delegate','admin','developer') NOT NULL DEFAULT 'delegate', </span><span>PRIMARY KEY (<span>`uid`</span>) </span><span>) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; </span><span>ALTER TABLE <span>`payment`</span> </span><span>ADD CONSTRAINT <span>`payment_ibfk_1`</span> FOREIGN KEY (<span>`uid`</span>) REFERENCES <span>`users`</span> (<span>`uid`</span>);</span>Es ist leicht herauszufinden, dass die Taste tatsächlich ein Formular ist. Daher müssen wir Daten mit ihren Eingaben veröffentlichen. Wenn wir unsere Schaltfläche "Register" generieren, sollte die Redirect-URL "& cmd = _s-xclick" und "& hosted_button_id = ha9dzbckxkcl2" enthalten. Jetzt wurde PayPal Sandbox -Konto eingerichtet. Dann beginnen Sie, Ihre PDT- und IPN -Handler zu codieren.
PDT -Handlerfunktion
Quellcode:
Erläuterung:
PayPal Call pdTHandSandler () -Funktion, dann dieser Handler -Funktionsprozess _pdt (). Wie Sie sehen, empfängt es Parameter von PayPal aus der URL ($ _get). Also veröffentlichen wir Token und TX über Fsock SSL an Paypal zurück. Dann kehrt PayPal Zahlungsdaten und Zahlungsergebnisse zurück (Erfolg/Misserfolg). _Pdt () übergibt diese Daten an _validatePaypal (), das Daten in Datenbank speichert. Dann leiten Sie die Seite entsprechend der Rückgabe um.IPN -Handlerfunktion
Quellcode:
<span>/** </span><span>* PAYPAL: PDT HANDLER: </span><span>* ==================== </span><span>* called by PayPal, send tokens back </span><span>* get payment details and payment result </span><span>* <span>@return $ret array contains result true/false, and user account or error message </span></span><span>*/ </span><span>private function _PDT() </span><span>{ </span><span>// some indexes can not be missing: </span><span>$ruler = array( </span><span>'tx', // token from paypal </span><span>); </span><span>if(count(array_diff($ruler, array_keys($_GET)))) </span><span>{ </span><span>return array('result' => false, 'error' => 'Index missing ... ', 'index' => $_GET, 'missing' => array_diff($ruler, array_keys($_GET))); </span><span>} </span><span>// read the post from PayPal system and add 'cmd' </span><span>$req = 'cmd=_notify-synch'; </span><span>// get token and prepare request url (send back to paypal) </span><span>$tx_token = $_GET['tx'];$auth_token = "_PJaHiwRfwMmWzW-9nuPuSguYxC-1d9KpxaasaNANtIvyOcmqY6jXNkRmxW"; </span><span>// $auth_token = "OxDenzKmrWPyEXU0YzIg2zs-VAe7ufCADyjbfxF_RpREL4rLEslZrSa21R4"; </span> <span>$req .= "&tx=<span><span>$tx_token</span>&at=<span>$auth_token</span>"</span>; </span> <span>// post back to PayPal system to validate </span> <span>$header = "POST /cgi-bin/webscr HTTP/1.0rn"; </span> <span>$header .= "Host: www.sandbox.paypal.comrn"; </span><span>// $header .= "Host: www.paypal.comrn"; </span> <span>$header .= "Content-Type: application/x-www-form-urlencodedrn"; </span><span>$header .= "Content-Length: " . strlen($req) . "rnrn"; </span> <span>$fp = fsockopen ('ssl://www.sandbox.paypal.com', 443, $errno, $errstr, 30); // open socket </span><span>// $fp = fsockopen ('ssl://www.paypal.com', 443, $errno, $errstr, 30); // open socket </span> <span>if (!$fp) </span><span>{ </span><span>// HTML FAIL </span><span>return array('result' => false, 'error' => 'HTTP error ... '); </span><span>} </span><span>else </span><span>{ </span><span>fputs ($fp, $header . $req); </span><span>// read the body data </span><span>$res = ''; </span><span>$headerdone = false; </span><span>while (!feof($fp)) </span><span>{ </span><span>$line = fgets ($fp, 1024); </span><span>if (strcmp($line, "rn") == 0) </span><span>{ </span><span>$headerdone = true; // read the header </span><span>} </span><span>else if ($headerdone) </span><span>{ </span><span>$res .= $line; // header has been read. now read the contents </span><span>} </span><span>} </span> <span>// parse the data </span><span>$lines = explode("n", $res); </span><span>$keyarray = array(); </span><span>if (strcmp ($lines[0], "SUCCESS") == 0) </span><span>{ </span><span>for ($i=1; $i_validatePaypal($keyarray); </span><span>} </span><span>// log for manual investigation </span><span>else if (strcmp ($lines[0], "FAIL") == 0) </span><span>{ </span><span>// skipped </span><span>return array('result' => false, 'error' => 'Transaction failed ... '); </span><span>} </span><span>} </span><span>fclose ($fp); </span><span>return $ret; </span><span>}</span>
Erläuterung:
PayPal Call Ipnhandler () -Funktion, dann dieser Handler -Funktionsprozess _ IPN (). Wie Sie sehen, empfängt es Daten, die von PayPal aus der Anfrage ($ _post) bereitgestellt wurden. Deshalb veröffentlichen wir Zahlungsdetails an PayPal über Curl, dies ist der Handshake -Prozess. Dann senden Sie das PayPal -Rückzahlungsergebnis (verifiziert/ungültig). Wenn es überprüft wird, übergibt _ipn () diese Daten an _validatePaypal (), was Daten in Datenbank speichert.In der ZIP -Datei enthält es Vorlagen, JavaScript -Dateien, CSS, Bootstrap, JQuery, Debugg -Plugin und Smarty -Plugin und alle Kern -PHP -Quellcode.
Download Project (344KB)häufig gestellte Fragen zur Registrierung für PayPal
Wie kann ich sicherstellen, dass mein PayPal -Konto während der Registrierung sicher ist? Um sicherzustellen, dass Ihr Konto sicher ist, verwenden Sie ein starkes, eindeutiges Passwort, das eine Mischung aus Buchstaben, Zahlen und Sonderzeichen enthält. Stellen Sie außerdem sicher, dass Sie während der Registrierung genaue persönliche Informationen bereitstellen. PayPal verwendet diese Informationen, um Ihre Identität zu überprüfen und Ihr Konto vor betrügerischen Aktivitäten zu schützen.
Kann ich mich für ein PayPal -Konto ohne Kreditkarte registrieren? eine Kreditkarte. Während des Registrierungsprozesses können Sie ein Bankkonto anstelle einer Kreditkarte verknüpfen. Das Verknüpfen einer Kreditkarte kann jedoch zusätzliche Zahlungsoptionen und Sicherheitsfunktionen bereitstellen. über ein persönliches Konto. Dazu gehören die Möglichkeit, Zahlungen von Kunden zu akzeptieren, Zugang zu Geschäftsdarlehen und Bargeldvorschüssen sowie die Möglichkeit, Rechnungen zu erstellen und zu senden. Mit einem Geschäftskonto können Sie auch unter einem Unternehmen oder Gruppennamen operieren.
Wie kann ich mich für ein PayPal -Konto registrieren, wenn ich außerhalb der USA lebe? Länder und Regionen auf der ganzen Welt. Um sich für ein PayPal -Konto außerhalb der USA zu registrieren, besuchen Sie die PayPal -Website für Ihr spezifisches Land oder Ihre spezielle Region. Der Registrierungsprozess ähnelt dem in den USA.
Welche Informationen müssen ich bei der Registrierung für ein PayPal -Konto bereitstellen? Ihr rechtlicher Name, Ihre Adresse, Ihre Telefonnummer und Ihre E -Mail -Adresse. Sie müssen auch ein Passwort erstellen und zwei Sicherheitsfragen auswählen, um Ihr Konto zu schützen.
Wie lange dauert es, sich für ein PayPal -Konto zu registrieren? ist schnell und einfach. Es dauert in der Regel nur wenige Minuten. Es kann jedoch einige Tage dauern, bis PayPal Ihr Bankkonto oder Ihre Kreditkarteninformationen überprüft.
Kann ich mich für mehr als ein PayPal -Konto registrieren? ein Paypal -Konto. Jedes Konto muss jedoch über eine eindeutige E -Mail -Adresse und finanzielle Informationen verfügen. Sie können ein persönliches Konto und ein Geschäftskonto haben.
Was passiert, wenn ich mein PayPal -Passwort während der Registrierung vergesse? das "Passwort vergessen?" Link auf der Anmeldeseite. Sie werden dann aufgefordert, Ihre E -Mail -Adresse einzugeben, und PayPal sendet Ihnen eine E -Mail mit Anweisungen zum Zurücksetzen Ihres Passworts.
Kann ich die Informationen ändern, die ich während der PayPal -Registrierung bereitgestellt habe? Melden Sie sich dazu bei Ihrem PayPal -Konto an, gehen Sie zu Ihrem Profil und wählen Sie die Informationen aus, die Sie ändern möchten.
Gibt es eine Gebühr für ein PayPal -Konto? Es gibt keine Gebühr, um sich für ein PayPal -Konto zu registrieren. PayPal erhoben jedoch Gebühren für bestimmte Transaktionen, z. B. Zahlungen für Waren und Dienstleistungen oder das Senden von Geld in ein anderes Land.
Das obige ist der detaillierte Inhalt vonRegistrieren Sie sich bei PayPal Tutorial (2/3): Ein echtes Register mit PayPal -Projekt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

JavaScript ist das Herzstück moderner Websites, da es die Interaktivität und Dynamik von Webseiten verbessert. 1) Es ermöglicht die Änderung von Inhalten, ohne die Seite zu aktualisieren, 2) Webseiten durch DOMAPI zu manipulieren, 3) Komplexe interaktive Effekte wie Animation und Drag & Drop, 4) die Leistung und Best Practices optimieren, um die Benutzererfahrung zu verbessern.

C und JavaScript erreichen die Interoperabilität durch WebAssembly. 1) C -Code wird in das WebAssembly -Modul zusammengestellt und in die JavaScript -Umgebung eingeführt, um die Rechenleistung zu verbessern. 2) In der Spieleentwicklung kümmert sich C über Physik -Engines und Grafikwiedergabe, und JavaScript ist für die Spiellogik und die Benutzeroberfläche verantwortlich.

JavaScript wird in Websites, mobilen Anwendungen, Desktop-Anwendungen und serverseitigen Programmierungen häufig verwendet. 1) In der Website -Entwicklung betreibt JavaScript DOM zusammen mit HTML und CSS, um dynamische Effekte zu erzielen und Frameworks wie JQuery und React zu unterstützen. 2) Durch reaktnatives und ionisches JavaScript wird ein plattformübergreifendes mobile Anwendungen entwickelt. 3) Mit dem Elektronenframework können JavaScript Desktop -Anwendungen erstellen. 4) Node.js ermöglicht es JavaScript, auf der Serverseite auszuführen und unterstützt hohe gleichzeitige Anforderungen.

Python eignet sich besser für Datenwissenschaft und Automatisierung, während JavaScript besser für die Entwicklung von Front-End- und Vollstapel geeignet ist. 1. Python funktioniert in Datenwissenschaft und maschinellem Lernen gut und unter Verwendung von Bibliotheken wie Numpy und Pandas für die Datenverarbeitung und -modellierung. 2. Python ist prägnant und effizient in der Automatisierung und Skripten. 3. JavaScript ist in der Front-End-Entwicklung unverzichtbar und wird verwendet, um dynamische Webseiten und einseitige Anwendungen zu erstellen. 4. JavaScript spielt eine Rolle bei der Back-End-Entwicklung durch Node.js und unterstützt die Entwicklung der Vollstapel.

C und C spielen eine wichtige Rolle in der JavaScript -Engine, die hauptsächlich zur Implementierung von Dolmetschern und JIT -Compilern verwendet wird. 1) C wird verwendet, um JavaScript -Quellcode zu analysieren und einen abstrakten Syntaxbaum zu generieren. 2) C ist für die Generierung und Ausführung von Bytecode verantwortlich. 3) C implementiert den JIT-Compiler, optimiert und kompiliert Hot-Spot-Code zur Laufzeit und verbessert die Ausführungseffizienz von JavaScript erheblich.

Die Anwendung von JavaScript in der realen Welt umfasst Front-End- und Back-End-Entwicklung. 1) Zeigen Sie Front-End-Anwendungen an, indem Sie eine TODO-Listanwendung erstellen, die DOM-Operationen und Ereignisverarbeitung umfasst. 2) Erstellen Sie RESTFUFFUPI über Node.js und express, um Back-End-Anwendungen zu demonstrieren.

Zu den Hauptanwendungen von JavaScript in der Webentwicklung gehören die Interaktion der Clients, die Formüberprüfung und die asynchrone Kommunikation. 1) Dynamisches Inhaltsaktualisierung und Benutzerinteraktion durch DOM -Operationen; 2) Die Kundenüberprüfung erfolgt vor dem Einreichung von Daten, um die Benutzererfahrung zu verbessern. 3) Die Aktualisierung der Kommunikation mit dem Server wird durch AJAX -Technologie erreicht.

Es ist für Entwickler wichtig, zu verstehen, wie die JavaScript -Engine intern funktioniert, da sie effizientere Code schreibt und Leistungs Engpässe und Optimierungsstrategien verstehen kann. 1) Der Workflow der Engine umfasst drei Phasen: Parsen, Kompilieren und Ausführung; 2) Während des Ausführungsprozesses führt die Engine dynamische Optimierung durch, wie z. B. Inline -Cache und versteckte Klassen. 3) Zu Best Practices gehören die Vermeidung globaler Variablen, die Optimierung von Schleifen, die Verwendung von const und lass und die Vermeidung übermäßiger Verwendung von Schließungen.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

SecLists
SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

PHPStorm Mac-Version
Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool

WebStorm-Mac-Version
Nützliche JavaScript-Entwicklungstools

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

DVWA
Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software
