2010-02-28 14 views
23

Sto sviluppando un'applicazione web. Ad esempio, ho usato cose come Joomla in passato per creare cose fantastiche, ma ora mi sono sporcato le mani con PHP, MySQL e CodeIgniter.Test per le vulnerabilità della sicurezza nelle applicazioni Web: best practice?

Quando si eseguono applicazioni Web seri che gestiranno grandi quantità di dati, quali precauzioni dovrei prendere contro i miei input di dati per sanitizzarlo completamente? So che c'è l'ovvio trim, fuga, xss pulizia, ecc., Ma quali altre tecniche dovrei incorporare per fermare le iniezioni nel database?

Non solo, ma esiste un codice di iniezione del database non distruttivo con cui posso testare tutti i miei input? Come in, inietterà qualcosa di visibile, ma in realtà non farà alcun danno al mio database di test? Non sono esattamente un hacker e ho bisogno di un po 'di guida su questo.

Quali altri metodi comuni usano gli hacker per distruggere o leggere i dati dell'utente e come posso verificarlo da solo? Non ho i soldi per assumere un consulente di sicurezza poiché ho solo 16 anni ma ho una buona esperienza con i computer e sono sicuro che potrei fare qualche trucco se avessi qualche suggerimento su quello che sono.

So che sono un sacco di domande, ma per riassumere, cosa fai per assicurarti che tutto sia sicuro al 100%?

+3

La protezione di un'applicazione Web è un argomento generale. Ci sono interi libri a riguardo. Quindi, la domanda, se bene, è troppo aspecifica secondo me e potrebbe essere chiusa o essere una wiki della comunità. C'è anche già un sacco di domande e risposte su SO su come prevenire l'SQL injection, XSS, CSRF, ecc. – Gordon

risposta

19

SQL Injection e XSS sono gli errori più comuni commessi dai programmatori. La buona notizia è che sono più facili da testare automaticamente, a patto che tu abbia il software giusto. Quando sono su un pentest uso Sitewatch o Wapiti per trovare le vulnerabilità delle applicazioni web. Acunetix è troppo caro.

Tuttavia, non è possibile attivare uno strumento automatico e aspettarsi che tutto funzioni.Ci sono una serie di precauzioni da prendere con lo scanner di vulnerabilità ANY che si sceglie.

1) assicurarsi che display_errors = On nei test di php.ini Sql Injection si basino sulla possibilità di visualizzare messaggi di errore mysql nelle pagine di risposta! Nessun errore, nessuna vulnerabilità rilevata!

2) Eseguire la scansione delle aree autenticate dell'applicazione. Creare un account utente appositamente per il test. Acuentix ha una semplice procedura guidata in cui è possibile creare una sequenza di accesso. Se stai usando wapiti puoi dare un cookie a wapiti o dare a wapiti una richiesta di posta per sparare, ma questo è un po 'complicato.

DOPO avete testato l'applicazione, quindi verificate l'errata configurazione del server. Per testare il server, è necessario eseguire OpenVAS che è la nuova versione gratuita di Nessus che ora è un prodotto commerciale. Quindi si dovrebbe seguire questo con PhpSecInfo. Questi test ti informeranno dei problemi con la tua configurazione o se stai utilizzando vecchi software vulnerabili.

Nulla sarà mai sicuro al 100%, EVER. Non importa quello che fai ci sono vulnerabilità che scivoleranno attraverso le fessure. Ci sono vulnerabilità in tutte le piattaforme di sviluppo che portano a compromessi che nessuno strumento può testare. Ci sono anche bug negli strumenti di test che usi. Ci sono posture false e falsi negativi e alcuni test che solo non funzionano, un buon esempio non ho mai visto uno strumento CSRF automatizzato che in realtà trovi vulnerabilità legittime. Il test CSRF di Acunetix è una completa perdita di tempo.

C'è anche lo OWASP testing guide che va più nel dettaglio. Questo non deve essere confuso con lo OWASP Top 10 che è anche un'ottima risorsa. Lo PHP Security Guide è anche un'ottima risorsa per i programmatori di php.

4

I don't have the money to hire a security consultant since I'm only 16
Tu sei 16 non significa che non si dispone di soldi per assumere: D .
Non è necessario assumere nessuno. Esistono molti strumenti online gratuiti che puoi utilizzare per testare la vulnerabilità della tua applicazione web.

  1. Provare a utilizzare http://www.zubrag.com/tools/sql-injection-test.phpper testare la vulnerabilità SQL Injection

  2. http://www.parosproxy.org: registratore di traffico web, ragnatela, calcolatrice hash, e uno scanner per testare gli attacchi più comuni applicazioni web come SQL injection e cross -site scripting

  3. HP WebInspect software [non gratuito] verifica attacchi Web comuni come l'iniezione di parametri, lo scripting cross-site, la directory traversal, [prova a cercarlo su google]

  4. http://portswigger.net/suite/: Burp Suite è una piattaforma integrata per attaccare le applicazioni web. Contiene tutti gli strumenti di Burp con numerose interfacce tra loro progettate per facilitare e accelerare il processo di attacco di un'applicazione. Tutti gli strumenti condividono lo stesso solido framework per la gestione di richieste HTTP, persistenza, autenticazione, proxy upstream, registrazione, avviso ed estensibilità.

+0

Grazie per tutti i link, fantastico! – Jack

+0

webinpsect e paraos sono una perdita di tempo, non ho usato gli altri. – rook

0

Utilizzare WebCruiser Vulnerability Vulnerability Scanner per la scansione delle vulnerabilità di SQL Injection, WebCruiser non è solo uno strumento di scansione di sicurezza Web, ma anche uno strumento automatico di iniezione SQL, uno strumento di iniezione XPath, uno strumento XSS.

Problemi correlati