Die Hauptsache zu verhindern, hier zu beachten ist, dass, wenn Mit AJAX stellen Sie im Wesentlichen eine Schnittstelle zu Ihrer Datenbank bereit. Zum Beispiel, wenn Sie nach doppelten Benutzernamen suchen (was Sie NICHT in Javascript tun können) oder doppelte E-Mails, um eine Nachricht wie "dieser Benutzername ist bereits in Verwendung ... bitte versuchen Sie eine andere", bieten Sie eine Schnittstelle für einen potentiellen Hacker, um sofort zu überprüfen, welche Benutzernamen und/oder E-Mails verfügbar sind. Die Sicherheitsaspekte sind nicht die gleichen wie für Javascript. Mein Rat an Sie zu diesem Thema ist (1) Verwenden Sie parametrisierte Abfragen für den Zugriff auf die Datenbank, wie jemand bereits vorgeschlagen hat. (2) Implementiere eine Verzögerung auf der ajax.php Seite - die Länge hängt vom Szenario ab - ich gehe für ungefähr 1 Sekunde (3) Führe Ajax bei Unschärfe aus, oder beim Verlieren des Fokus, nicht bei jedem Tastendruck, (4) Implementiere einen Check in Ihrem Ajax-Handler, der sicherstellt, dass die Anfrage von der erwarteten Seite kommt (dh: nicht irgendein zufälliges Skript, das ein Hacker geschrieben hat). (5) NUR den AJAX-Aufruf ausführen, wenn eine andere grundlegende Validierung des Formularelements stattgefunden hat [dh die grundlegende JavaScript-Validierung]
Ich hoffe, das hilft. Formularvalidierung mit Ajax ist absolut nichts, als auch nur im Entferntesten der JavaScript-Validierung ähnlich zu sein. Es ist eine Schnittstelle in Ihre Datenbank, und Sie müssen vorsichtig damit sein.
Es hilft, sich vorzustellen, wie Sie in Ihre eigene Website eindringen würden - zu wissen, welche E-Mail-Adressen auf Ihrer Website registriert sind, ist ein guter Anfang. So könnte ich ein Skript schreiben, um zufällige E-Mail-Adressen mit gebräuchlichen Wörtern und/oder Namen zu generieren und Ihren Ajax-Handler zu hämmern, um eine Liste der registrierten E-Mail-Adressen auf Ihrer Website zu erhalten. Ich könnte das schnell tun, WENN du den Ratschlägen nicht folgst (1) - (5), die ich oben angegeben habe. Sobald ich die E-Mails habe, google ich sie einfach ... Chancen sind, die mir einen Namen gibt. Ich kann den Benutzernamen von dort erraten. So, jetzt habe ich Benutzernamen und E-Mails. Passwörter würden zu lange dauern, um sie zu erklären, aber wenn ich die Benutzernamen oder E-Mails so leicht bekommen kann ... markiert sie dich als Ziel und du bekommst mehr Aufmerksamkeit, die du wirklich willst.
Ich arbeite gerade an einem Registrierungsvalidierungssystem - ich würde mich freuen, es mit Ihnen zu teilen, wenn Sie möchten. Vermutlich vermisse ich etwas Wichtiges!
Frieden raus.
Soweit ich weiß, nutzt AJAX XMLHttpRequest, die selbst ein Javascript-Objekt ist, so dass es seltsam klingt, wenn Sie AJAX und Javascript trennen. Aber wie auch immer, AJAX ist wie POST/GET ohne die Aktualisierung, so lange Sie Ihre Validierung serverseitig richtig machen, sollten Sie in Ordnung sein. Und nein, nichts ist sicher, wenn Sie nicht sicher codieren. –
Danke :-) Das war auch mein Grund für die Verwendung von PHP/AJAX - es ist (relativ) in Echtzeit, hat aber die relative Sicherheit von PHP. – Bojangles