Prevenire SQL Injection in C
-
27-10-2019 - |
Domanda
Sto scrivendo un'applicazione C che richiede un po 'input dell'utente e fa un paio di query di database. Sono ben consapevole dei rischi qui di SQL injection e desiderio di prevenirlo.
Idealmente vorrei utilizzare query con parametri, ma sono stato in grado di trovare qualcosa con questa funzionalità in C finora. Attualmente sto costruendo le mie domande, come ad esempio:
char *query;
asprintf(&query, "UPDATE SomeTable SET SomeField='%s';", userInput);
Se non sono in grado di fare questo, allora devo bisogno di filtrare l'input dell'utente. Come dovrebbe essere fatto questo filtraggio? È sufficiente solo rimuovere tutti s' e "s? (Ingressi validi non possono contenere loro). In caso affermativo, qual è il modo più semplice di fare questo in C?
Soluzione
Credo che si desidera utilizzare le istruzioni preparate e vincolanti parametri. Fare i dati degli utenti non direttamente di interpolazione nelle vostre query. Vedere la MySQL manuale per informazioni.