¿Cómo enviar argumento de forma segura utilizando la clase de proceso?
-
01-10-2019 - |
Pregunta
Estoy usando System.Diagnostics.Process para ejecutar un comando svn desde una aplicación de consola de Windows. Esta es la configuración del proceso:
svn.StartInfo.FileName = svnPath;
svn.StartInfo.Arguments = string.Format("copy {0}/trunk/ {0}/tags/{1} -r head -q --username {3} --password {4} -m \"{2}\"", basePathToRepo, tagName, message, svnUserName, svnPassword);
svn.StartInfo.UseShellExecute = false;
svn.Start();
svn.WaitForExit();
Mi problema es que esos argumentos, que incluyen las credenciales SVN, se envían (supongo) de un modo no seguro.
¿Hay una manera de enviar estos argumentos de manera segura utilizando la clase Process?
Gracias!
Solución
Esto es usando el mecanismo de línea de comandos estándar, que se va a ser el mismo que cualquier otro método. No hay una "segura" manera de enviar un argumento de línea de comandos para un programa, ya que es sólo un proceso estándar.
Una vez dicho esto, este es va a ser accesible sólo a nivel local, ya que se está ejecutando esta en la cuenta del usuario local ya. Esto es tan seguro como hacer que el usuario escriba esto en una ventana del símbolo ...
Otros consejos
enviar dónde? que se pasan de su código de API de Windows. es en memoria operación, es lo suficientemente seguro.