Javiers svar som har owasp-länken är en bra början.
Det finns några fler saker du kan göra mer:
-
Angående SQL-injektionsattacker kan du skriva en funktion som tar bort vanliga SQL-satser från indata som " DROP " eller "DELETE * WHERE", så här:
*$sqlarray =array( " DROP ","eller 1=1","union select","SELECT * FROM","välj värd","skapa tabell","FRÅN användare","användare WHERE");*
Skriv sedan funktionen som kontrollerar din inmatning mot denna array. Se till att något av sakerna i $sqlarray inte kommer att vara vanliga indata från dina användare. (Glöm inte att använda strtolower på detta, tack lou).
-
Jag är inte säker på om memcache fungerar med PHP 4 men du kan införa ett visst spamskydd med memcache genom att endast tillåta en viss fjärr-IP-åtkomst till sidan process.php X antal gånger under Y-perioden.
-
Privilegier är viktiga. Om du bara behöver infoga privilegier (säg orderhantering) så ska du logga in i databasen på orderprocesssidan med en användare som bara har infoga och kanske välja privilegier. Detta innebär att även om en SQL-injektion gick igenom, kunde de bara utföra INSERT/SELECT-frågor och inte ta bort eller omstrukturera.
-
Lägg viktiga php-bearbetningsfiler i en katalog som /include. Tillåt sedan alla IP-adresser åtkomst till den /include-katalogen.
-
Sätt en saltad MD5 med användarens agent + remoteip + ditt salt i användarens session och låt den verifiera vid varje sidladdning att rätt MD5 finns i deras cookie.
-
Tillåt inte vissa rubriker (http://www.owasp.org/index.php/Testing_for_HTTP_Methods_and_XST ) . Tillåt inte PUT(Om du inte behöver filuppladdningar)/TRACE/CONNECT/DELETE-rubriker.