Ite*_*tor 4 c++ printf format-string c++20 fmt
我想使用printf、fprintf等将 C 风格代码重构为 C++。是否std::format容易受到格式字符串攻击,如前面提到的 C 函数?
如果我搜索格式字符串攻击,我发现的只是stdio 格式字符串漏洞。我想更多地了解是否std::format容易受到攻击,以及如何缓解它,即使我必须格式化用户提供的字符串。
我想更多地了解是否
std::format容易受到攻击,以及如何缓解它,即使我必须格式化用户提供的字符串。
即使您使用std::vformat(接受运行时字符串),输入也会根据其他参数的类型进行验证,并std::format_error在不匹配时引发(同时std::format在编译时在调用站点验证这一点)。
因此,恶意用户无法潜入您未提供的参数的格式说明符。由于用于参数的格式化程序必须基于其静态类型(因此也由您提供),因此攻击者无法尝试双关语。
总而言之,该攻击方向似乎被阻止了。