2010-07-19 10 views
7

In questo momento sto imparando a conoscere il framework CakePHP e volevo solo sapere cosa rende sicuro CakePHP. Quanto sono sicuri i suoi componenti, per esempio quanto è sicuro il componente di autenticazione. Inoltre, cosa possiamo fare come sviluppatori per aumentare la sicurezza della nostra applicazione web basata su CakePHP?Cosa rende sicuro CakePHP e come possiamo aumentarne la sicurezza?

Anche voi ragazzi raccomandate qualche libro o sito per saperne di più sulla sicurezza di CakePHP?

Spero di sentirti presto. Grazie

risposta

5

Cake segue le best practice in molte aree e dispone di strumenti piuttosto sicuri. Lo integrato è dotato di un'infrastruttura che ha già coperto in una certa misura molte aree tipiche della sicurezza webapp. Ad esempio, non dovrai preoccuparti molto dell'iniezione SQL, poiché l'astrazione del database di Cake sfugge a tutti gli input. Qualora così non fosse, the manual warns you modo appropriato:

updateAll(array $fields, array $conditions) 

! L'array $ campi accetta espressioni SQL. I valori letterali dovrebbero essere quotati manualmente.

Utilizzando SecurityComponent si ottiene la protezione automatica dello spoofing del modulo.
La convalida dei dati è una grande parte integrata dei modelli.
Le password di hasc e sali AuthComponent correttamente , sebbene non necessariamente nel modo più sicuro possibile.
C'è una comoda scorciatoia h() per htmlentities che dovresti usare per uscire dall'output per evitare problemi XSS.
Et cetera Perge Perge ...

È dovrà ancora utilizzare tutti i componenti in modo corretto e anche se stare attenti a non aprire eventuali buchi "su misura". Cake è solo una cassetta degli attrezzi, è ancora perfettamente possibile creare un'applicazione terribilmente insicuro che lo utilizza. Puoi comunque spararti ai piedi, indipendentemente dalla bontà della pistola. La struttura Cake predefinita è solo un punto di partenza. Non è il fine-tutto-tutto-tutto in termini di sicurezza; pensa per te. Il link fornito da John è davvero un buon punto di partenza.

4

Il framework CakePHP esiste da un po 'di tempo (dal 2005) ed è un software open source. Ciò significa che il suo codice è disponibile per la revisione da parte di qualsiasi sviluppatore, o non sviluppatore, che desideri farlo. Sia la community di CakePHP che le community di sicurezza hanno avuto il tempo di rivedere il codice base e trovare/correggere potenziali problemi di sicurezza. Ciò non significa che il software sia perfetto ma con CakePHP è così popolare che puoi scommettere che è stato rivisto in modo abbastanza approfondito e se ci sono dei difetti in esso sono profondi e molto difficili da trovare/identificare.

Ma tieni a mente, solo perché il codice nel framework è sicuro, non significa che il suo utilizzo rende il tuo codice sicuro. Devi ancora seguire pratiche di codifica sicure perché la tua base di codice può essere vulnerabile indipendentemente dal livello di sicurezza del framework che utilizzi.

+1

Grazie John, uno dei motivi per cui ho fatto questa domanda è che quando ho cercato di creare un sistema di autenticazione completo senza usare CakePHP, ho notato che una gran parte di esso era legato a problemi di sicurezza. Cose come la convalida dei dati e la protezione contro le iniezioni SQL e così via. Quindi, adottando un framework (cakephp), HOUMMED ci sarebbero state alcune guardie sicure integrate contro alcune delle cose che ho appena menzionato. La mia ipotesi è corretta? Anche qualcosa in particolare che gli sviluppatori fanno sempre avere un codice sicuro? Ancora una volta, grazie in anticipo :) –

+1

Non ho familiarità con CakePHP poiché non l'ho mai usato, quindi non sono sicuro del tipo di applicazione e strumenti che offre per la programmazione sicura. Potrebbe offrire strumenti per gestire la convalida dei dati e le misure igieniche per voi, ma probabilmente avrete bisogno di utilizzare questi strumenti in modo esplicito, poiché dubito che saranno automatici. –

+1

hai parlato di "pratiche di codifica sicure" puoi darti qualche consiglio o qualche riferimento – RSK

2

La sicurezza della torta è piuttosto buona, ma tutto ha dei buchi. Per un sito ultra sicuro, farei ricerche su noti buchi di sicurezza e errori e testare il sito contro questi casi. Semplicemente non è sufficiente affidarsi alla dichiarazione di un certo grado di sicurezza di qualcun altro.

Alcuni siti non necessitano di elevati livelli di sicurezza e possono dare un risultato in termini di prestazioni. Altri devono essere inviolabili.

Detto questo, sono impressionato dalla sicurezza incorporata di Cake e non ho ancora dovuto modificarlo.

6

Leo: Alcuni siti non hanno bisogno di alti livelli di sicurezza e di possono dare un colpo prestazioni. Altri devono essere inviolabili.

Scusate Leo, ma non sono d'accordo. Ogni sito che costruisci, lo fai con la massima cura della sicurezza in mente. Indipendentemente dal tipo di sito che è. Supponiamo ad esempio che tu abbia costruito questo sito hackersafe superduper molto stretto. Lo ospiterai su un server condiviso e indovina cosa ... Qualcuno ha avuto accesso al tuo sito sicuro attraverso un buco nel tuo sito meno sicuro. O anche l'intero server.

Lo so, è una teoria del destino ma credo che cose del genere avvengano su basi quotidiane.

Problemi correlati