Correggere un numero elevato di SQLi, XSS, RFI / LFI in un'applicazione PHP

1

Sto lavorando su un sito Web che è stato creato pochi anni fa in PHP e che è pieno di vulnerabilità in tutto il luogo. Qualcuno ha già ottenuto l'accesso al pannello di amministrazione e vogliamo proteggere i siti web e prevenire future intrusioni.

La soluzione più semplice, ma noiosa è quella di passare manualmente ogni file e sostituire tutte le query mysql con query preparate e disinfettare tutti gli input. Tuttavia, voglio sapere se esiste una soluzione più semplice che può fungere da livello tra l'input dell'utente (GET, POST, COOKIE, SERVER) e la logica del sito Web e filtrare tutti i dati di input dall'aspetto sospetto.

Ho fatto qualche ricerca e ho trovato PHPIDS, ma non riuscivo a capire se fosse in grado di disinfettare anche gli input. PHPIDS è l'ideale per questo compito? C'è qualcosa di meglio adatto a questo scopo?

    
posta Deepak Mittal 08.04.2014 - 11:45
fonte

5 risposte

2

Ci sono firewall per applicazioni web là fuori che fanno il tipo di cosa di cui stai parlando.

IMHO, che mai possiede questo sito web ha bisogno di mordere la pallottola e fare uno sforzo per proteggere effettivamente il sito web invece di adottare un altro approccio mezzo assedito.

Se perdere un sacco di soldi nell'assumere un consulente di sicurezza per eseguire un controllo di sicurezza sul sito non è un'opzione realistica, è è possibile per uno sviluppatore web impegnato eseguire un controllo di sicurezza su un sito e correggere eventuali vulnerabilità rilevate. Ovviamente un professionista sarebbe un'opzione migliore, ma se ciò non è realistico, molti sviluppatori possono fare un lavoro di discesa con la guida corretta.

Se questa è una strada che sei disposto ad andare, ti suggerirei di ottenere una copia di Manuale del pirata informatico per le applicazioni Web (ci sono molti altri buoni libri, ma personalmente mi è piaciuto questo). Oltre a entrare nel dettaglio su come funzionano i vari attacchi e su come proteggerli, fornisce anche un approccio sistematico alla ricerca di tutte le vulnerabilità della sicurezza su un sito web nel capitolo intitolato "Metodologia di un hacker di applicazioni Web".

La lettura di questo libro e l'esecuzione di un controllo di sicurezza aumentano la consapevolezza / conoscenza della sicurezza in modo significativo . Un must per qualsiasi sviluppatore web serio.

    
risposta data 08.04.2014 - 20:00
fonte
1

Questa non è una buona posizione per entrare e il recupero da qui richiederà un grande sforzo. Ma stai iniziando nel posto sbagliato.

La prima cosa che devi fare è:

1) assicurati che solo le directory designate siano scrivibili (disabilita il motore php per queste, eve se al di fuori della root del documento)

2) blocca l'accesso al pannello di amministrazione ad eccezione di una whitelist di IP adders / intervalli

Questa è la mitigazione solo .

sanitize all inputs

No:

Convalida gli input , sanitizza output

Questo è il motivo per cui non esiste un livello magico che ti protegga da software scritto male. Tuttavia, è possibile ridurre il rumore eseguendo la scansione degli input da script e SQL (tramite un file di pre-assegnazione automatico), quindi inviare i risultati a fail2ban. Ma questo è ancora solo mitigazione.

    
risposta data 08.04.2014 - 17:25
fonte
0

PHPIDS non sanifica l'input dell'utente. Previene solo attacchi diversi. Può essere una buona soluzione temporanea, ma non è l'ideale. Esistono modi per bypassare PHPIDS , pertanto è necessario correggere le vulnerabilità.

    
risposta data 08.04.2014 - 12:27
fonte
0

Quello che stai cercando è un firewall per applicazioni web: link

Tuttavia, come hanno risposto gli altri poster, consiglio vivamente di dedicare del tempo a correggere il codice anche se implementate un firewall come questo.

    
risposta data 08.04.2014 - 17:33
fonte
0

Puoi usare uno strumento chiamato OSE Security Suite, c'è una modalità silenziosa, accenderla e disinfetterà tutti gli input. Nel tuo caso, per quanto ho capito, non è necessario utilizzare la modalità Blocco o la modalità errore 403, poiché tutto ciò che si desidera è di disinfettare tutti gli input. Questa è la pagina del prodotto, link , ti suggerirei di contattare il supporto prima di acquistare il prodotto per essere sicuro al 100% di poter disinfettare l'input. In bocca al lupo!

    
risposta data 09.04.2014 - 03:21
fonte

Leggi altre domande sui tag