Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 20 su 20

Hybrid View

  1. #1
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Hai questa query : DELETE FROM Ingredienti WHERE ID='$delete'

    Se $_GET['id'] = "0' or 1=1 --"


    Ti dà : DELETE FROM Ingredienti WHERE ID='0' or 1=1 --'


    Poi per ottenere ció basta creare un link :
    <a href='ingredienti.php?id="0' or 1=1 --">clicca</a>
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  2. #2
    Quote Originariamente inviata da badaze Visualizza il messaggio
    Hai questa query : DELETE FROM Ingredienti WHERE ID='$delete'

    Se $_GET['id'] = "0' or 1=1 --"


    Ti dà : DELETE FROM Ingredienti WHERE ID='0' or 1=1 --'


    Poi per ottenere ció basta creare un link :
    <a href='ingredienti.php?id="0' or 1=1 --">clicca</a>
    Non capisco bene questa cosa, ho provato a mettere lo 0 o l' 1=1, non succede nulla.

    Comunque ora funziona, puoi verificarlo nel link che ho messo nel primo post (lo smile), inserisci e cancella pure ciò che vuoi, è solo un test.

    Quello che non ho ben capito, è il discorso sicurezza, mettiamo che sia professionale.

  3. #3
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Mi ero sbagliato su un carattere.
    ...
    ti ho mandato un mp.

    Discorso sicurezza. Tutti i dati che sono inviati devono essere controllati prima di essere elaborati.
    Ultima modifica di badaze; 07-01-2016 a 23:53
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  4. #4
    Grazie, questo è un problema dalla barra degli indirizzi, non dalla pagina in se, il controllo, come si fa?
    Con una seconda pagina immagino, usando POST al posto di GET, non credo però, o in qualche altro modo?

  5. #5
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Il problema sta nella pagina non nell'indirizzo. Non puoi impedire a nessuno di scrivere una url e di eseguirla. Quindi devi controllare i dati che ti sono inviati; che lo siano tramite get o post. Poi per i metodi, cerca in internet o qui ce ne sono tanti.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  6. #6
    Quote Originariamente inviata da badaze Visualizza il messaggio
    Il problema sta nella pagina non nell'indirizzo. Non puoi impedire a nessuno di scrivere una url e di eseguirla. Quindi devi controllare i dati che ti sono inviati; che lo siano tramite get o post. Poi per i metodi, cerca in internet o qui ce ne sono tanti.
    Onestamente guide non ne ho trovate tante, quella forse più vicina al mio caso è questa, che però ho capito in parte.
    Potresti cortesemente spiegarmi meglio come funziona e come si applica?
    Ho fatto un po' di prove, logicamente cambiando l'SQL, ma utilizzando quel:
    codice:
    ?id=0 or 1=1 --
    viene sempre cancellato tutto.

    Grazie!

  7. #7
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Devi controllare che il dato che ti è inviato combaci con i tuoi requisiti. Per esempio nell'id aspetti un numero. Quindi devi controllare che il dato passato è un numero.

    Esempio :
    Codice PHP:
    if (! isset($_GET['id'])) { 
      die(
    "errore 1");
    } else {
      
    $id $_GET['id'];
      if (! 
    preg_match("/^[0-9]+$/",$id)) { 
          die(
    "errore 2");
      }
      
    // se arriva qui allora id corrisponde ad un numero.



    Ovviamente l'esempio è solo una dritta. Tocca a te vedere cosa fare nel caso in cui c'è un errore.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  8. #8
    Quote Originariamente inviata da badaze Visualizza il messaggio
    Devi controllare che il dato che ti è inviato combaci con i tuoi requisiti. Per esempio nell'id aspetti un numero. Quindi devi controllare che il dato passato è un numero.

    Esempio :
    Codice PHP:
    if (! isset($_GET['id'])) { 
      die(
    "errore 1");
    } else {
      
    $id $_GET['id'];
      if (! 
    preg_match("/^[0-9]+$/",$id)) { 
          die(
    "errore 2");
      }
      
    // se arriva qui allora id corrisponde ad un numero.



    Ovviamente l'esempio è solo una dritta. Tocca a te vedere cosa fare nel caso in cui c'è un errore.
    Credevo servisse il
    Codice PHP:
    mysql_real_escape_string() 
    quindi ok.
    L'errore 1 è in caso la variabile sia nulla, avevo già precluso quell'errore no?
    Mentre l'errore 2 funziona alla grande, direi che ora funziona tutto.
    Il rischio era solo quello?

    Grazie veramente tante, mi sei stato di grandissimo aiuto!

  9. #9
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Mysql_real_escape_string serve eccome !
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  10. #10
    Quote Originariamente inviata da badaze Visualizza il messaggio
    Mysql_real_escape_string serve eccome !
    Correggimi se non ho capito bene:
    Quella funzione verifica i caratteri immessi, io invece nella pagina, accettavo solo lettere, quelli accentati e spazio:
    Codice PHP:
    function CheckName($checkname)
        {
        
    $charsok "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZàèìòù ";
        for(
    $x=0$x<strlen($checkname); $x++)
            {
            
    $string=substr($checkname$x1); 
            
    $charsk=strrpos($charsok$string);    
            if (
    $charsk===false)
                {
                return(
    false);
                }
            }
        return(
    true);
        } 
    Quindi qualsiasi altro carattere veniva bloccato.
    Alla fine è la stessa cosa, no?

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