Estoy desarrollando una aplicación que permite al usuario ingresar nombres de host, nombres de bases de datos, nombres de usuario y contraseñas para el acceso a la base de datos. La aplicación construirá una cadena de conexión ODBC rellenando los marcadores de posición. En C, eso se traduciría en algo como:
snprintf(connStr, sizeof(connStr),
"DRIVER={%s};SERVER={%s};DATABASE={%s};UID={%s};PWD={%s}",
myDriver, hostName, dbName, userName, passWord);
Lo primero que pensé: necesito suprimir el ";" Personaje de todo. (Y indique a los usuarios que sus contraseñas no pueden contener puntos y comas).
¿Soy vulnerable a algún tipo de información hostil en este caso? (Antes de que pregunte, sí, buscaré una entrada excesivamente grande. Puede suponer que el búfer connStr será suficiente. O eso, o usaré un lenguaje de nivel superior con tipos de cadenas administradas).