I understand why using 'shell=True' can be a security risk if you have untrusted input. However, I don't understand how 'shell=False' avoids the same risks.
Presumably if I wanted to allow a user to provide an input he might input: var="rm -rf /"
My code might simply:
subprocess.call(var,shell=True) # bad stuff
Or I might do:
varParts=var.split()
subprocess.call(varParts,shell=False) # also bad, right?
It would seem that the assumption is one wouldn't go through the trouble of processing the input as I did in the second example and therefore this would/could not happen?