我在不同的python项目的源代码中的几个地方得到了一个OS_Access_Violation。它出现在这样的区域:
if __name__ == '__main__':
main(sys.argv[1:])
通常与以下内容相结合:
os.makedirs(args.output_dir, exist_ok=True)
以及
elif args.backend == "beefygoodness":
os.environ["MMMMM_TACOS"] = "beefygoodness"
和
'args = parser.parse_args(('
没有与此发现相关的描述,所以我不确定它的含义以及适当的补救措施是什么。我也不确定它是否指的是开发人员意义上的访问冲突(又名程序崩溃(,或者它是否是指对不应该访问的数据的引用,或者究竟是什么。
不幸的是,谷歌在这方面也没有帮助。
那么有谁知道这个神秘的高优先级发现指的是什么,以及正确的解决方法是什么?谢谢!
我还没有测试查询,但结果是有意义的。
您使用来自用户的输入,因此您不确定其完整性,并且可能是敌对的。
例如:
args[1:]
:你期望有4个参数,但用户可以给你更多,并意外地影响系统。
现在,如果我正确理解你的问题,你说易受攻击的流从main
调用开始,到os
调用之一结束。
此时你应该明白,来自用户的未受保护的输入,用作os
方法的参数。
如果用户将/root/pwd
设置为目录输入怎么办?
或者,如果用户将恶意文本设置为环境变量,该怎么办?
我认为更好的解决方案是将参数/env变量保存为文件[以及从秘密存储库获取的凭据]并在运行时使用它们。