我想知道是否可以在运行时更改main()的输入参数。换句话说,在argv中处理数据时,是否应保护应用程序免受可能的TOCTOU攻击。目前,我不知道更改argv中传递的数据的任何方法,但是我不确定这种方法不存在。
这完全取决于您的threat model。
我想说这里有两个主要选项:
argv
或任何其他数据,就可以依赖它。TOCTTOU类问题通常是由外部untrusted数据引起的,可以由其他人修改,并且从定义上不应该被信任。一个简单的例子就是文件的存在:您不能依赖它,因为计算机上的其他用户或程序可能会删除或移动它。您的问题只能由您自己回答:您将可信和不可信的界限放在哪里?