La risposta di Javier che ha il collegamento owasp è un buon inizio.
Ci sono alcune altre cose che puoi fare di più:
-
Per quanto riguarda gli attacchi SQL injection, puoi scrivere una funzione che rimuoverà le istruzioni SQL comuni dall'input come " DROP " o "DELETE * WHERE", in questo modo:
*$sqlarray =array( " DROP ","o 1=1","union select","SELECT * FROM","select host","create table","DAgli utenti","utenti DOVE");*
Quindi scrivi la funzione che verificherà il tuo input rispetto a questo array. Assicurati che tutte le cose all'interno di $ sqlarray non siano input comuni dei tuoi utenti. (Non dimenticare di usare strtolower su questo, grazie lou).
-
Non sono sicuro che memcache funzioni con PHP 4, ma puoi mettere in atto una protezione antispam con memcache consentendo solo un certo accesso IP remoto alla pagina process.php X quantità di volte in un periodo di tempo Y.
-
I privilegi sono importanti. Se hai solo bisogno dei privilegi di inserimento (ad esempio, l'elaborazione dell'ordine), dovresti accedere al database nella pagina di elaborazione dell'ordine con un utente che ha solo i privilegi di inserimento e forse selezionare. Ciò significa che anche se un'iniezione SQL è andata a buon fine, potrebbero eseguire solo query INSERT / SELECT e non eliminare o ristrutturare.
-
Metti importanti file di elaborazione php in una directory come /include. Quindi non consentire a tutti gli IP di accedere a quella directory /include.
-
Metti un MD5 salato con l'agente dell'utente + remoteip + il tuo sale nella sessione dell'utente e fallo verificare ad ogni caricamento della pagina che l'MD5 corretto sia nel suo cookie.
-
Non consentire determinate intestazioni (http://www.owasp.org/index.php/Testing_for_HTTP_Methods_and_XST ). Disabilita le intestazioni PUT(se non hai bisogno di caricare file)/TRACE/CONNECT/DELETE.