Ci sono molte cose da considerare quando si tratta di sicurezza in un'applicazione. Come ha detto Pascal, è una buona idea usare un framework popolare che ha visto un numero di persone guardarlo.
Vedo alcune aree di interesse per quanto riguarda CakePHP.
Il primo problema è l'utente finale. Dovresti aspettarti che qualcuno faccia qualcosa di sciocco su ogni pagina che costruisci.Alcuni esempi di questo sono:
- Una persona che fa clic sul pulsante di invio rapidamente più e più volte. Questo potrebbe inclinare o incasinare il sistema in un modo se non stai attento. La soluzione per questo non è basata sul framework, ma piuttosto sulla metodologia e sui test di codifica.
- SQL Injection e altre cose negative. Qualsiasi campo in una pagina può essere potenzialmente abusato, quindi ogni elemento del modulo deve essere disinfettato. CakePHP ha metodi semplici per prendersi cura di questi problemi di sicurezza. http://book.cakephp.org/view/153/Data-Sanitization
- Gli URL puliti sono molto importanti. Non si dovrebbe mai progettare un sistema che permetta a un utente di accedere direttamente alle chiavi primarie intere. Ad esempio, se hai un sito che ha/show_user/2098, allora qualcuno può semplicemente digitare show_user/2097 per vedere l'account di qualcun altro. CakePHP ti consente di incorporare abbastanza facilmente slug o UUID per evitare che ciò accada.
In secondo luogo, devi preoccuparti degli attacchi relativi al codice e ai permessi stessi. Ad esempio:
- Non utilizzare mai eval() o system() nel codice da dati che potrebbero provenire dall'utente finale. Ci sono state applicazioni in passato scritte in Perl che sono state dirottate a causa di questo problema.
- La struttura della cartella e le autorizzazioni sono importanti per quanto riguarda la sicurezza. Gli utenti non dovrebbero mai avere accesso per entrare in una directory scrivibile. Con CakePHP la struttura delle cartelle è progettata in modo da poter indirizzare apache direttamente ad app/webroot. Ciò significa che la directory tmp è al di fuori del percorso Apache, rendendo il sistema un po 'più sicuro.
In terzo luogo, dovresti preoccuparti della protezione delle pagine di amministrazione e di chi dispone delle autorizzazioni per accedere a cosa.
- CakePHP ha un componente Auth e Acl che consente di scegliere quali utenti possono accedere a quali pagine. Questo fa uso di sessioni di torta personalizzate che possono essere archiviate in un database, usando PHP o scritte nel file system.
Suggerirei di leggere su alcuni dei componenti importanti e di essere certi di averli configurati correttamente, per far si che tu abbia costruito un'applicazione senza difetti di sicurezza. Dai uno sguardo ad alcuni di questi elementi mentre cerchi ulteriormente: http://book.cakephp.org/view/170/Core-Components