Sto sviluppando un'applicazione che consente all'utente di inserire nomi host, nomi di database, nomi utente e password per l'accesso al database. L'applicazione costruirà una stringa di connessione ODBC riempiendo i segnaposto. In C, ciò si tradurrebbe in qualcosa di simile:
snprintf(connStr, sizeof(connStr),
"DRIVER={%s};SERVER={%s};DATABASE={%s};UID={%s};PWD={%s}",
myDriver, hostName, dbName, userName, passWord);
Per prima cosa ho pensato - ho bisogno di asportare il ";" personaggio da tutto. (E indica agli utenti che le loro password non possono contenere il punto e virgola).
Sono vulnerabile a qualche tipo di input ostile in questo caso? (Prima che tu chieda, sì, controllerò l'input troppo grande. Puoi presupporre che il buffer connStr sarà sufficiente, oppure userò un linguaggio di livello superiore con tipi di stringhe gestite.)