Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Stringhe pericolose per MySql

    Ciao.
    Sto valutando come preservare il mio db da attacchi di poveri idioti rompiscatole, ed un quesito mi sorge spontaneo...ma se io mi preoccupo di fare gli escape con ereg_replace ad esempio (come consigliano in molti) e poi però nella query utilizzo l'heredoc (PHP) allora ho solo aggiunto caratteri inutili...no? Cioè l'escape serve in funzione di come si esprime la query, giusto?

    Se fosse come dico sopra, qual è la strada più intelligente da seguire?
    Ha senso o no impedire l'utilizzo di certi caratteri/parole?

    Grazie.

  2. #2

  3. #3
    Originariamente inviato da filippo.toso
    Ti suggerisco di iniziare leggendo questa guida:

    http://php.html.it/guide/lezione/2986/sql-injections/
    grazie, l'avevo già letta

    solo che mi chiedevo, qual è la strada + sicura per eseguire query (pacchetto query+escape fondamentalmente)?

    è una cosa buona e giusta eliminare tutti i caratteri pericolosi (\-;$%&) o è un sintomo di debolezza dell'applicazione?

    Se utilizzassi l'heredoc in ogni query

    Codice PHP:
    $query = <<<EOQUERY
         SELECT * FROM users
      WHERE name = '
    $name'
    EOQUERY; 
    e su $name faccio l'escape (ovviamente prima) di " \'%; ", sono ok?

  4. #4
    non è necessario eliminare nulla, basta usare gli strumenti corretti

    prima di passare i valori alla query effettui l'escape tramite le apposite funzioni, nel caso di mysql è mysql_real_escape_string.

    L'importante è che verifichi se è abilitato l'escape degli apici di php, funzionalità attiva il 99% delle volte, perché in questo caso devi rimuovere gli apici ( tramite stripslashes ) prima di inserire la stringa altrimenti rischi di avere casini a posteriori

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.