3

Google C++ 风格指南部分“其他 C++ 功能”包含以下内容:

除了样式指南的其余部分中描述的内容外,可能无法使用以下 C++ 功能:

  • 编译时有理数 ( <ratio>),因为担心它与更重模板的界面样式相关联。
  • 和头文件<cfenv><fenv.h>因为许多编译器不可靠地支持这些功能。
  • <filesystem>头没有足够的测试支持,并且存在固有的安全漏洞。

(强调我的)

我知道 Google C++ 风格指南可能会引起一些争议,并且有些观点我不同意。尽管如此,我很想知道<filesystem>标头中存在的固有安全漏洞是什么,这是指在使用其他一些访问文件系统的方式(例如特定于操作系统的 API 调用)时不会出现的安全漏洞。

4

1 回答 1

0

只是<filesystem>包装系统调用 likerename而不是renameat,因此不允许在不受到符号链接攻击的情况下解析文件名。这当然不会影响所有用例,但这是一个合理的问题;也许未来的 C++ 版本将包括一个基于描述符的接口。

于 2019-12-12T21:00:23.890 回答