Visualizzazione dei risultati da 1 a 8 su 8

Visualizzazione discussione

  1. #2
    Quote Originariamente inviata da Sonikag Visualizza il messaggio
    Sto "aggiornando" il mio vecchio sistema di login che ancora usava mysql_connect per una connessione mysqli
    Il primo step è superato, però vorrei un parere sulla sicurezza.

    Codice PHP:
    $username htmlspecialchars($_POST['username'], ENT_QUOTES);
    $password sha1($_POST['password']);
    $qwt "SELECT * FROM utenticliente WHERE username =?";
    $stmt $connessione->prepare($qwt);
    $stmt->bind_param("s"$username);
    $stmt->execute();
    $result $stmt->get_result(); 
    Nella precedente versione per sicurezza la query era:
    codice:
    "SELECT * FROM utenticliente WHERE username ='" . mysql_real_escape_string($username) . "'"
    Quindi secondo voi anche senza il mysql_real_escape_string è comunque abbastanza sicuro? potrei fare altro?
    Grazie
    Sonia
    Certo, non si usa piu mysql_real_escape_string! Adesso si usano i bind param (così come hai già scritto nel tuo codice). Per essere più precisi puoi anche definire che tipo di elemento è la variabile che devi "supervisionare" http://php.net/manual/it/pdo.constants.php. Una sola cosa che non capisco (spero che qualcun altro intervenga) è perchè utilizzare i bind param all'interno di una query SELECT.

    PS. Puoi semplificare il codice scrivendo (non imporante)
    codice:
    $stmt = $connessione->prepare("SELECT * FROM utenticliente WHERE username =?");
    Invece di
    codice:
    $qwt = "SELECT * FROM utenticliente WHERE username =?";
    $stmt = $connessione->prepare($qwt);
    Ultima modifica di supersqualo; 14-12-2017 a 21:58

Tag per questa discussione

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.