Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    mysql_real_escape_string

    Salva a tutti ho un piccolo dubbio in merito alla protezione sulle SQl Iniectjon, sarebbe meglio inserire il controllo così:

    $user=mysql_real_escape_string($_POST['nome']);

    oppure inserire nella query prima il mysql così:

    $insert=mysql_real_escape_string(mysql_query("INSE RT INTO prova. . . . ... ..

  2. #2
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    la prima che hai detto

    Indipendentemente dalla via che si decide di intraprendere, l'unico punto che dobbiamo avere ben chiaro è: controllare ogni input.
    la seconda tra l'altro non ha senso poiche la funzione mysql_query non ti restituisce una stringa (anche se dato che php non è fortemente tipizzato non ti restituirà errore di sintassi)

  3. #3
    Quindi in pratica se io avessi fatto così:

    $insert=mysql_real_escape_string(mysql_query("INSE RT INTO prova. . . . ... ..

    nel secondo caso ho sbagliato assolutamente quindi non c'è protezione, giusto?

    Inoltre se io avessi anche la variabile già protetta con htmlentities come faccio? Cioè ripropongo tutto così:

    $nome=mysql_real_escape_string(htmlentitis($_POST['nome'])); Così?

    Oppure devo fare una varibile con htmlentitis e una con mysql_real_escape_string?

  4. #4
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    la funzione htmlentitis non ti protegge dall'SQL injection quindi devi comunque controllare l'input, se ti va leggi questo articolino dove ci sono 4 tecniche che puoi nache combinare fra di loro

    http://php.html.it/guide/lezione/298...sql-injection/

  5. #5
    l'htmlentitis protegge dai cross site scripting poichè pulice l'input malevolo html, però io già proteggo quella varibile con l'htmlentitis posso proteggere anche dalle SQL iniectjon come avevo proposto su?

    In attesa di risposta vado anche a leggermi la segnalazione ^_*

  6. #6
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    si si
    questo mi sembra giusto
    $nome=mysql_real_escape_string(htmlentitis($_POST['nome']));

  7. #7
    Ecco cosa intendevo, cioè una verifica completa della variabile sia per le SQL Iniectjon ma anche su Cross Site Scripting quindi io ad esempio ho questa Query che và ad inserire il tutto nel mio DB, dunque il dato sul Form viene filtrato con il POST quindi:


    $prova1=mysql_real_escape_string(htmlentities($_PO ST['prova1']));

    $insert=mysql_query("SELECT * FROM prova WHERE prova1='".$_POST['prova1']."');

    Giusto? Fatto così sono coperto un minimo su i due tentati hackeraggi?

  8. #8
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    sbagliato

    se fai
    Codice PHP:
    $prova1=mysql_real_escape_string(htmlentities($_POST['prova1'])); 
    e poi fai
    Codice PHP:
    $insert=mysql_query("SELECT * FROM prova WHERE prova1='".$_POST['prova1']."'); 
    non hai risolto niente perchè $_POST['prova1'] è rimasto uguale a quello inserito dall'utente

    devi invece fare così
    Codice PHP:
    $prova1=mysql_real_escape_string(htmlentities($_POST['prova1']));
    $insert=mysql_query("SELECT * FROM prova WHERE prova1='".$prova1."'); 
    ovvero inserire nella query la stringa processata dalle 2 funzioni mysql_real_escape_string e htmlentities

  9. #9
    Ah vero, errore pardon, il POST ripetuto due volte ^__^

    Gentilissimo ultima cosuccia, quindi con questo metodo posso comunque star sicuro sulle SQL Iniectjon e Cross Site Scripting?

  10. #10
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    io direi di si, ma sono sempre pronto a ricredermi se qualcuno mi convince del contrario

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 © 2024 vBulletin Solutions, Inc. All rights reserved.