Javiers svar, som har owasp-linket, er en god start.
Der er et par ting mere, du kan gøre mere:
-
Med hensyn til SQL-injektionsangreb, kan du skrive en funktion, der fjerner almindelige SQL-sætninger fra input som " DROP " eller "DELETE * WHERE", sådan her:
*$sqlarray =array( " DROP ","eller 1=1","union select","SELECT * FROM","vælg vært","opret tabel","FRA brugere","brugere WHERE");*
Skriv derefter den funktion, der kontrollerer dit input i forhold til dette array. Sørg for, at noget af det inde i $sqlarray ikke er almindeligt input fra dine brugere. (Glem ikke at bruge strtolower på dette, tak lou).
-
Jeg er ikke sikker på, om memcache virker med PHP 4, men du kan sætte en vis spambeskyttelse på plads med memcache ved kun at tillade en bestemt ekstern IP-adgang til process.php-siden X antal gange i Y-perioden.
-
Privilegier er vigtige. Hvis du kun har brug for indsæt-rettigheder (f.eks. ordrebehandling), så skal du logge ind i databasen på ordreprocessiden med en bruger, der kun har indsæt- og måske vælge-rettigheder. Det betyder, at selvom en SQL-injektion kom igennem, kunne de kun udføre INSERT/SELECT-forespørgsler og ikke slette eller omstrukturere.
-
Læg vigtige php-behandlingsfiler i en mappe såsom /include. Tillad derefter alle IP'er adgang til det /include-bibliotek.
-
Sæt en saltet MD5 med brugerens agent + remoteip + dit salt i brugerens session, og få den til at verificere ved hver sideindlæsning, at den korrekte MD5 er i deres cookie.
-
Tillad visse overskrifter (http://www.owasp.org/index.php/Testing_for_HTTP_Methods_and_XST ). Tillad PUT (hvis du ikke har brug for filupload)/TRACE/CONNECT/DELETE headers.