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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top