2012-10-25 22 views
9

Sto cercando di scegliere una struttura che offre davvero una buona sicurezza delle applicazioni web, protegge contro la maggior quantità di OWASP Top-10 il più possibile, come ad esempio:Buon Php quadro per la sicurezza forte

  • Sql Injection
  • XSS
  • CSRF
  • autenticazione
  • Autorizzazione
  • ecc

la cosa è che ho provato occupando davvero pesante: CakePHP, Zend, Yii, codeigniter, Kohana e alcuni hanno base di autenticazione, forse un po 'autorizzazione, ma nulla per qualsiasi applicazione che ha bisogno di codice di sicurezza solido .

La maggior parte dei tipi di vulnerabilità sopra attualmente è protetta solo dalla scrittura di codice personalizzato in questi framework?

Questo è un po 'la mia prima esperienza con l'utilizzo di framework, tutto fino a questo punto è stato personalizzato web app php. Tutto il mio pensiero per php-frameworks era facile da proteggere contro queste vulnerabilità, dato che non è nativo, perché usarne uno? O c'è un framework là fuori che non guardo quale è meglio di quelli sopra elencati per una forte sicurezza delle app web? Grazie

+1

Alla fine della giornata, sta a te proteggere la tua app. Non c'è davvero una cosa come la sicurezza automatica. –

+0

Codeigniter ha costruito in Injection, XSS, CSRF. L'autenticazione e l'autorizzazione sono una specie di applicazione specifica, quindi scrivere una biblioteca per coprirli sarebbe quasi inutile, vero? –

+0

So che non è automatico, ma un framework è lì per supportare ... – CodeTalk

risposta

12

La sicurezza non può essere applicata a un'applicazione come un piallaccio.Ogni tipo di un problema di sicurezza è affrontato in qualche altro modo, e la maggior parte dei framework PHP fornire strumenti per scrivere codice sicuro:

  • Fighting iniezione HTML/XSS richiede l'uso di un motore di template (come Twig) che ignora i valori per impostazione predefinita o un approccio basato su componenti per la visualizzazione di HTML. Nessun framework ti aiuterà, se permetti alle persone di caricare i loro file e di avere i loro serviti dal tuo dominio (devi usare un dominio separato per quello);

  • È possibile evitare l'iniezione SQL utilizzando gli helper db che sfuggono ai parametri della query ; ogni quadro che hai citato fornisce quelli (e del corso puoi usare il PDO semplice);

  • È possibile combattere CSRF utilizzando token di sessione. Ogni framework offre una soluzione. In ogni caso, tuttavia, è necessario assistere il framework in qualche modo (aggiungendo un token a ciascun modulo o utilizzando un'astrazione di modulo fornita dal framework).

Quindi in un certo senso, sì, bisogna pensare alla sicurezza. Non credo che nessun framework PHP possa fare qualcosa di più di quello che già fanno, a meno che non ci sia un importante cambio di paradigma che ci consente di progettare applicazioni trascinando scatole colorate sullo schermo, senza toccare cose sporche e insicure come HTML o SQL. Che tipo di supporto ti aspetteresti?

+0

Ottimo commento e spunti di riflessione qui fdreger! Grazie! – CodeTalk

+0

Ciao fdreger, come stai? Spero tu stia bene =) posso contattarti per favore? Ho davvero bisogno del tuo aiuto se non ti dispiace su alcuni problemi di php =) dimmi il modo migliore che preferisci per essere contattato =) –

1

Le principali vulnerabilità che hai menzionato in diversi e talvolta più livelli e dipendono spesso dal contesto di ciò che stai facendo, molte di esse offriranno le strutture per proteggersi da questa roba ma devi farne uso .

Ad esempio sia Symfony (1.xe 2) che Zend Framework hanno un componente/sottostruttura di forma che impianta CSRF fuori dalla scatola. Ma ciò non significa che sia attivato di default (symfony è ... non ricordare se ZF è o non è). La stessa cosa con XSS quando parliamo del lato di escape dell'output nel livello di vista.

Ora, quando si tratta di preferenze di framework per le grandi app, personalmente mi piacciono Symfony 1.xe Symfony2, Zend Framework 1.x (non parlerò di zf2 perché non ho ancora giocato con esso). Per cose semplici mi piace Silex (basato su Symfony Components).

8

Direi anche di provare CodeIgniter.

  • SQL-injection - Se si utilizza il modello di record attivo in CodeIgniter sei sicuro
  • XSS - E 'un valore di configurazione nel file config.php
  • CSRF - anche un valore di configurazione nel file config.php
  • Accesso ecc - ci sono librerie per che, come https://github.com/EllisLab/CodeIgniter/wiki/SimpleLoginSecure

anche CodeIgniter è facile da usare se si sta lavorando con un quadro di riferimento per la prima volta e ha una guida d'uso grande che è davvero facile da capire.

+0

Se avessi visto la tua risposta prima, avrei dato il controllo :) Penso che sarò in grado di rotolare con codeigniter :) – CodeTalk

+0

Anywho, buon post! @ – CodeTalk

+0

Ciao Evo, come stai? Spero tu stia bene =) posso contattarti per favore? Ho davvero bisogno del tuo aiuto se non ti dispiace su alcuni problemi php =) dimmi il modo migliore che preferisci per essere contattato =) –

Problemi correlati