gpt4 book ai didi

可以传递非字符串文字的c函数strftime创建一个不受控制的格式字符串漏洞

转载 作者:行者123 更新时间:2023-12-04 11:28:27 24 4
gpt4 key购买 nike

我正在为一个项目使用 strftime 函数,我将用户提供的字符串而不是字符串文字传递给它。由于过于谨慎,我通过将每个警告标志传递给 gcc 进行编译,并且因为我没有将字符串文字传递给 strftime,所以我收到一条警告,告诉我我正在使用非字符串文字。

我假设这是为了防止 printf() 函数易受攻击的不受控制的格式字符串漏洞。然而,经过一番调查,我了解到该漏洞源于 printf() 是一个可变参数函数。但是 strftime() 不是可变参数函数。

传递用户提供的字符串是否会使我的程序面临漏洞,或者 gcc 警告过于谨慎?

最佳答案

正确答案是限制用户输入。也就是说,不要让他们指定格式字符串。相反,给他们一组选择,他们可以从中选择作为他们用户偏好的一部分。

如果您愿意,可以将选项硬编码到常量数组中。这将阻止编译器提示。 (它还会防止精明的用户通过手动向配置文件中的可能选项添加错误值来绕过您的保护。)

关于可以传递非字符串文字的c函数strftime创建一个不受控制的格式字符串漏洞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49946042/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com