Javiers Antwort mit dem OWASP-Link ist ein guter Anfang.
Es gibt noch ein paar Dinge, die Sie tun können:
-
In Bezug auf SQL-Injection-Angriffe können Sie eine Funktion schreiben, die allgemeine SQL-Anweisungen wie " DROP " oder "DELETE * WHERE" wie folgt aus der Eingabe entfernt:
*$sqlarray =array( " DROP ","or 1=1","union select","SELECT * FROM","host auswählen","Tabelle erstellen","FROM Benutzer","Benutzer WO");*
Schreiben Sie dann die Funktion, die Ihre Eingabe gegen dieses Array prüft. Stellen Sie sicher, dass das Material in $sqlarray keine allgemeine Eingabe Ihrer Benutzer ist. (Vergiss nicht, strtolower dafür zu verwenden, danke lou).
-
Ich bin mir nicht sicher, ob Memcache mit PHP 4 funktioniert, aber Sie können mit Memcache einen gewissen Spam-Schutz einrichten, indem Sie nur einer bestimmten Remote-IP-Adresse X-mal in Y-Zeiträumen Zugriff auf die Seite process.php gewähren.
-
Privilegien sind wichtig. Wenn Sie nur Einfügerechte benötigen (z. B. Auftragsbearbeitung), sollten Sie sich auf der Bestellvorgangsseite mit einem Benutzer in die Datenbank einloggen, der nur Einfüge- und möglicherweise Auswahlrechte hat. Das bedeutet, dass selbst wenn eine SQL-Injection durchkam, sie nur INSERT / SELECT-Abfragen ausführen und nicht löschen oder umstrukturieren konnten.
-
Legen Sie wichtige PHP-Verarbeitungsdateien in einem Verzeichnis wie /include ab. Verbieten Sie dann allen IPs den Zugriff auf dieses /include-Verzeichnis.
-
Platzieren Sie ein gesalzenes MD5 mit dem Agenten des Benutzers + remoteip + Ihrem Salz in der Sitzung des Benutzers und lassen Sie es bei jedem Seitenladen überprüfen, ob sich das richtige MD5 in seinem Cookie befindet.
-
Bestimmte Header nicht zulassen (http://www.owasp.org/index.php/Testing_for_HTTP_Methods_and_XST ) . PUT(Wenn Sie keine Datei-Uploads benötigen)/TRACE/CONNECT/DELETE-Header nicht zulassen.