La top ten OWASP è un elenco importante da controllare, ma è necessariamente un po 'vago e rende difficile tradurre le best practice generalizzate in suggerimenti di codifica.
Una buona regola da tenere a mente è che presume sempre che il tuo input sia malevolo , indipendentemente da dove provenga, in quanto può essere difficile immaginare quanto possa essere pericoloso input anche da parte dei più innocenti di fonti. Non assumere mai che i valori forniti dall'utente siano limitati alle opzioni che gli hai dato tra cui scegliere, non presupporre mai che il contenuto inviato sia limitato a un determinato set di caratteri o al tipo di contenuto.
Suggerirei di utilizzare uno dei molti framework MVC per PHP, dato che spesso forniscono cose come modularità, routing, astrazione del database, ecc., che probabilmente dovresti scrivere da te, e quali sono gli errori che vengono fatti frequentemente . Per lo meno, leggi il codice di altre persone e capisci perché hanno fatto quello che hanno fatto, e che tipo di errori stanno evitando.
In effetti, consiglierei di scaricare diversi di questi framework; CakePHP, CodeIgniter, Kohana, ecc., E leggendo e comprendendo ogni componente prima di tentare di scrivere il proprio. Potrebbe sembrare una perdita di tempo, ma in realtà sprechi meno tempo e impara più e < strong> impara le migliori pratiche se concentrati maggiormente sull'apprendimento del codice di altre persone piuttosto che immergerti e capire da solo.
Inoltre, come aggiunta editoriale, raccomando vivamente contro PHP se hai altre opzioni; e questo viene da qualcuno che ha iniziato a programmare in PHP dal 1998. Nell'interesse della sicurezza, sanità, prestazioni e manutenibilità, è difficile trovare un'opzione peggiore di PHP. Questo è già stato trattato fino alla nausea, quindi non dirò altro che prendere nota qui.