Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di spawn88
    Registrato dal
    Feb 2012
    residenza
    Milano
    Messaggi
    313

    funzione contro sql injection

    Buongiorno a tutti,
    ho provato a creare una funzione che pulisca i dati di login inseriti dall'utente ma volevo avere un vostro parere se ho scritto una porcheria oppure ho creato qualcosa di utile.
    Lo script è il seguente:
    Codice PHP:
    <?php
    function controllo ($username$password){
        if (!
    get_magic_quotes_gpc()){
                
            
    $username htmlspecialchars(trim(addcslashes($username)));
            
    $password htmlspecialchars(trim(addcslashes($password)));
            
    $password md5($password);
             
        }else{
                
            
    $stringa1 stripslashes($username);
            
    $stringa2 stripslashes($password);
            
    $username mysql_real_escape_string($stringa1);
            
    $password mysql_real_escape_string($stringa2);
            
    $password md5($password);
        }
        
    $parametri = array($param1$param2);
        
    $puliti controllo($username$password);
        return(
    $puliti);
    }
    //fine funzione

    $username $_POST['$USERNAME'];
    $password $_POST['PASSWORD'];

    list(
    $username$password) = controllo($username$password);

    $sql "SELECT * FROM login WHERE usename = "'.$username.'" AND "'.$password.'"";
    $result mysql_query($sql);
    if (
    $result){
        ....
    }
    ?>
    Attendo vostri graditissimi consigli.
    Grazie a tutti in anticipo.

  2. #2
    Sicuro che ti funziona? Chiami la funzione controllo() ed all'interno di essa richiama nuovamente controllo(), dovrebbe andare in loop infinito.
    Inoltre a cosa ti serve htmlspecialchars()?
    Al posto di addcslashes() io utilizzerei addslashes().
    CODENCODE \ Branding \ Design \ Marketing
    www.codencode.it

  3. #3
    Utente di HTML.it L'avatar di spawn88
    Registrato dal
    Feb 2012
    residenza
    Milano
    Messaggi
    313
    effettivamente andava in loop
    ho sostistuito addcslashes() con addslashes().
    htmlspecialcharts() l'ho utilizza per proteggersi dalle XSS.
    Sbaglio?
    Per quanto riguarda la query cosa ne pensi?
    E' adeguata per evitare sql injection?
    Ora il codice, con le opportune modifiche, è la seguente:
    Codice PHP:
    <?php
    <?php
    function controllo ($username$password){
        if (!
    get_magic_quotes_gpc()){
                
            
    $username trim(addslashes($username));
            
    $password trim(addslashes($password));
            
    $password md5($password);
             
        }else{
                
            
    $stringa1 stripslashes($username);
            
    $stringa2 stripslashes($password);
            
    $username mysql_real_escape_string($stringa1);
            
    $password mysql_real_escape_string($stringa2);
            
    $password md5($password);
        }
        
    $parametri = array($username$password);
        
        return(
    $puliti);
    }
    //fine funzione

    $username $_POST['$USERNAME'];
    $password $_POST['PASSWORD'];

    list(
    $username$password) = controllo($username$password);

    $sql 'SELECT * FROM login WHERE usename = "'.$username.'" AND "'.$password.'"';
    $result mysql_query($sql);
    if (
    $result){
        
    //....
    }
    ?>
    Grazie mille

  4. #4
    htmlspecialcharts() lo dovresti utilizzare quando stampi la stringa che l'utente ha inserito, es: supponiamo tu voglia far lasciare dei commenti ad un utente, il commento lo inserisci così com'è nel db, poi in fase di stampa dei commenti nella pagina html, utilizzi htmlspecialcharts() così sei sicuro. E' inutile memorizzare la stringa che ti restituisce htmlspecialcharts() nel db. Almeno questo è ciò che penso io.

    Per le sql injection ci siamo.

    Comunque ti consiglio di leggere i seguenti articoli.
    http://www.html.it/articoli/protegge...l-injection-1/
    http://www.html.it/articoli/tecniche...e-scripting-1/

    e questa guida
    http://www.html.it/guide/guida-sicurezza-di-php/

    che non fa mai male.
    CODENCODE \ Branding \ Design \ Marketing
    www.codencode.it

  5. #5
    Utente di HTML.it L'avatar di spawn88
    Registrato dal
    Feb 2012
    residenza
    Milano
    Messaggi
    313
    grazie mille codencode

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.