2009-11-30 20 views
9

C'è un modo per confermare che una particolare violazione della sicurezza è stata effettuata tramite l'iniezione SQL?Come confermare l'iniezione SQL

+0

si è sicuri che è successo, o semplicemente sospetti? – kurast

+0

In realtà i dettagli che sono solo nel database sono ... quindi la prima cosa che mi è venuta in mente è che il dbase potrebbe essere stato violato. – Sachindra

+0

hai provato quello che ho proposto? – kurast

risposta

1

dopo che l'attacco è già avvenuto? no. non c'è. dovrai controllare tutti i tuoi access point sql serevr per potenziali rischi. ci sono alcuni strumenti che puoi usare. Controllare here nella sezione degli strumenti di iniezione SQL.

0

Solo un modo affidabile sta probabilmente analizzando i file di registro SQL. Quelli dovrebbero essere fatti da un DBA che può individuare le cose rapidamente come la dimensione dei registri sarebbe enorme.


È meglio prevenirli.

Ci sono alcuni tools per quello ma il migliore è il cervello dello sviluppatore.

Stick con una semplice regola - utilizzare sempre i parametri durante la generazione della query SQL.
Basta fare la revisione del codice e se trovate cocatenations stringa - che e prima e altamente possibile luogo per SQL Injection.

+0

la richiesta usa il passato, ho il sospetto che sia già successo. – lorenzog

+0

Sì. Hai ragione. Ho aggiornato la risposta un po '. –

-2

È possibile registrare tutte le richieste http e controllare le pagine richieste per le prove di iniezione GET/POST sql.

7

Non c'è un modo semplice qui, ma se hai abilitato il server SQL che usi per registrare ogni singola istruzione sql, ecco cosa farei.

Normalmente, quando I SQL si inietta da qualche parte, io uso uno di questi come la mia sempre vera istruzione per passare la clausola Where, dopo aver terminato la stringa precedente.

1=1 
0=0 

sia in uso come:

blahblahblah' or 1=1 -- 

Non utilizza questo clausole nel codice di tutti i giorni. Quindi se noti uno di questi nella tua storia, beh, è ​​un candidato alto. Testare la storia sql trovare:

(space)(number)(optional spaces)(equal)(optional spaces)(same number)(space) 

Tenete a mente che è euristica, e non sempre funziona, ma potrebbe essere l'unico modo per dare un suggerimento dopo che era successo. Inoltre, in caso di dubbi sull'iniezione SQL, è necessario verificare il codice per la concatenazione delle stringhe e l'uso dei parametri.

1

Utilizzare mod_security per registrare le richieste POST e installare un sistema di rilevamento delle intrusioni per registrare/interrompere attività sospette d'ora in poi. Registrazione ogni richiesta SQL è un overhead se si sta solo cercando i punti di violazione.

Ci sono alternative open source per IDS in questi giorni. Io uso PHPIDS per tutte le mie applicazioni PHP.

1

SQL injection può accadere in qualsiasi momento che si passa una query al database.

SQL Injection

Problemi correlati