此 strncpy 存在哪些安全问题
What security issues exist with this strncpy?
可能的重复项:
为什么 strncpy 不安全?
strncpy()
有哪些安全问题:
function foo(char * param) {
char local[100];
/* do stuff */
strncpy(local, param, strlen(param));
/* do more stuff */
}
通常,要strncpy(3)
的最大长度 (3'rd) 参数是目标的大小,而不是源的大小。将传输限制在源的大小确实没有意义,因为这是使用更危险的普通strcpy(3)
传输的最大值。
而且,要回答这个问题,问题在于这不是内存安全操作,因此攻击者可以提供比缓冲区更长的字符串,这将覆盖堆栈上的代码,并且如果精心安排,可以执行攻击者的任意代码。
相关文章:
- C++线程安全:如果只有一个线程可以写入非原子变量,但多个线程从中读取. 会遇到问题吗?
- 使用安全零内存新建/删除时出现问题
- 在C++中,这个Eigen::张量的声明是安全的,还是有缺陷的?我应该为它提交一个问题吗
- 编译器优化是否解决了线程安全问题
- CreateProcess API的安全问题
- GSL螺纹安全问题
- 为什么我们需要 RAII 来解决异常安全问题
- 关于 swap() 操作的异常安全 - 这有什么问题?
- 此 strncpy 存在哪些安全问题
- 在机器上运行时,编译的源代码(C++、Java 等)涉及哪些安全问题
- 创建表示安全ORrable标志的类时出现问题
- 实现应用程序网络协议的安全问题
- 使用"for(auto&e : cont)"安全吗?矢量有什么问题<bool>?
- C++常见问题解答的不安全宏的解释?
- 在线编译c/c++[安全问题]
- 创建读取面向互联网的套接字的守护进程有什么安全问题?
- 线程安全问题
- 关于QMap线程安全的问题
- c++系统调用安全问题
- 我的简单线程安全堆栈有什么问题?