Significato query

di il
3 risposte

Significato query

Ciao ragazzi, cosa significa esattamente questa query?

SELECT * FROM Tabella WHERE username='' or '1' = '1' AND password=''or '1' = '1'

in particolare non capisco i valori '' or '1' = '1'

3 Risposte

  • Re: Significato query

    E' il classico attacco di SQL injection, in cui si sfrutta il fatto che chi ha scritto l'applicazione non ha previsto che l'utente possa inserire nei vari campi della form (in questo caso username e/o password) dei valori che possono essere eseguiti direttamente come SQL.
    Nel caso specifico, inserendo come username e/o password la stringa ' OR '1'='1 si bypassa il controllo di questi valori con quelli presenti nel DB, in quanto la clausola OR ha priorità minore rispetto all'AND (cioè viene eseguita dopo), e il confronto '1' = '1' restituisce sempre true.
  • Re: Significato query

    Della ha scritto:


    E' il classico attacco di SQL injection, in cui si sfrutta il fatto che chi ha scritto l'applicazione non ha previsto che l'utente possa inserire nei vari campi della form (in questo caso username e/o password) dei valori che possono essere eseguiti direttamente come SQL.
    Nel caso specifico, inserendo come username e/o password la stringa ' OR '1'='1 si bypassa il controllo di questi valori con quelli presenti nel DB, in quanto la clausola OR ha priorità minore rispetto all'AND (cioè viene eseguita dopo), e il confronto '1' = '1' restituisce sempre true.
    Grazie mille per il chiarimento, se qualcuno fosse interessato a rendere piu sicuro il proprio sito sto leggendo queste slide https://www.owasp.org/images/f/ff/Parata_SMAU06.pd

    Buona giornata!
  • Re: Significato query

    Secondo me il metodo più semplice e immediato è quello di usare i prepared statement. In PHP, ad esempio, puoi farlo tramite PDO
Devi accedere o registrarti per scrivere nel forum
3 risposte