Go 在任何平台上验证给定文件路径是否位于基本路径内的最安全方法是什么?
这些路径最初以字符串形式提供,并使用“/”作为分隔符,但它们是用户提供的,我需要假设大量恶意输入。我应该执行哪种类型的路径规范化来确保评估诸如“..”之类的序列,以便我可以安全地检查基本路径?各种文件系统和平台上有哪些需要注意的例外情况?哪些 Go 库在这方面应该是安全的?
结果将被提供给外部函数,例如os.Create
和sqlite3.Open
,并且任何未能识别出基本路径已离开的行为都将构成安全违规。
慕容708150
相关分类