2014-09-07 20 views
6

Utilizzo di PHP e MySQLi Ho un semplice modulo con 4 input HTML 5 a discesa Seleziona lista. Ora mi chiedo se devo ancora usare l'istruzione preparata per proteggere il mio database? Sono ancora a rischio di problemi di SQL Injection? O c'è qualche altro tipo di rischio per l'utilizzo di questo tipo di input. GrazieHo ancora bisogno di utilizzare l'istruzione preparata

+1

Io davvero non capisco come questa domanda abbia ottenuto così tanto upvotes nonostante il fatto che i primi due risultati di una [ricerca Google] (https://www.google.fr/search?q=sql+injection+dropdown&ie = utf-8 & oe = utf-8 & aq = t & rls = org.mozilla: it-it: ufficiale & client = firefox-a & canale = sb & gfe_rd = cr & ei = rqQMVJPvBpGDcOqcgvAG) già rispondono e la risposta è banale e si riduce a: [** mai fidarsi input utente **] (http://stackoverflow.com/questions/2794016/what-should-every-programmer-know-about-security). –

+0

Fai clic con il pulsante destro del mouse sulla casella di selezione in Chrome e fai clic su "Ispeziona elemento". Quindi sentiti libero di cambiare i valori in base alle tue preferenze e invia il modulo. – rybo111

risposta

9

Sei ancora aperto per un attacco di iniezione poiché il valore inserito tramite la casella di selezione potrebbe essere facilmente modificato dall'utente finale.

Se si dispone di un buon lato server di convalida, quindi farlo senza istruzione preparata funzionerebbe.

Con buona intendo qualcosa di simile:

$array = Array("all", "your", "possible", "values", "from", "Select boxes"); 
if(in_array ($_POST['selectbox'], $array)){ 
     //Mysql statements etc.... 
} 

Direttamente inserendo l'input dell'utente MAI è una buona idea. Non dovresti mai fidarti dell'utente finale!

+0

Grazie Philip per la modifica e la risposta alla domanda. Sinceramente fare l'iniezione SQL su input come testo o e-mail ha senso per me, ma non riesco a capire come input come radio e caselle di selezione possano essere hackerati! – Suffii

+0

Per qualcuno che vuole fare del male al tuo sito: modificare i valori tramite selectbox è quasi facile come inserirlo nei campi di inserimento del testo. –

+0

Certo, ma devo aspettare altri 3 minuti! Per accettare la risposta – Suffii