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
risposta
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!
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
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. –
Certo, ma devo aspettare altri 3 minuti! Per accettare la risposta – Suffii
- 1. , ma ho ancora bisogno di intestazioni?
- 2. Ho bisogno di un server per utilizzare WebSockets di HTML5?
- 3. Perché ho bisogno di interfaccia?
- 4. Ho davvero bisogno di libgcc?
- 5. Ho bisogno __closure__
- 6. PayPal: pixel.gif - Ho bisogno?
- 7. Abbiamo ancora bisogno di AsyncEnumerator di Richter?
- 8. Ho bisogno di un'API. Dove dovrei iniziare?
- 9. Intestazioni HTTP: il controllo della cache è sufficiente o ho ancora bisogno di scade?
- 10. Ho bisogno di un buon uploader JavaScript
- 11. Ho bisogno di aiuto nell'uso di PredicateBuilder
- 12. Ho bisogno di caratteri di sottolineatura separati
- 13. Ho bisogno di Ulteriori informazioni su HandleError
- 14. Ho bisogno di più Esempi pratici di Ninject
- 15. Ho bisogno di Expand/Collapse per RowDetailsTemplate
- 16. Ho bisogno di aiuto su un algoritmo
- 17. ho bisogno di chiudere uno std :: fstream?
- 18. Ho davvero bisogno di un SDK OpenCL?
- 19. Base Proibita. Ho bisogno di utente
- 20. Ho bisogno di una funzione C# lenta
- 21. In Perl, perché ho bisogno di esportatore?
- 22. Ho bisogno di MSVCR90.dll versione 9.0.21022.8
- 23. Database locale, ho bisogno di alcuni esempi
- 24. Di quale certificato SSL ho bisogno?
- 25. Ho bisogno di eseguire un allungamento dell'istogramma
- 26. Ho davvero bisogno di scrivere questo "SerializationHelper"?
- 27. Ho bisogno di aiuto con Java Generics
- 28. Ho bisogno di entrambi jdk e jre?
- 29. Ho bisogno di mangimi con graphql?
- 30. Ho bisogno di un account sviluppatore Apple?
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). –
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