我正在阅读有关缓冲区溢出的OWASP 页面。它提到:
使用强类型的高级编程语言可以防止缓冲区溢出
开发人员应验证输入以防止处理意外数据,例如错误的数据类型
当不正确的数据类型可能导致缓冲区溢出时,有人可以举个例子吗?
我正在阅读有关缓冲区溢出的OWASP 页面。它提到:
使用强类型的高级编程语言可以防止缓冲区溢出
开发人员应验证输入以防止处理意外数据,例如错误的数据类型
当不正确的数据类型可能导致缓冲区溢出时,有人可以举个例子吗?
以下是一些 C/C++ 示例:
将 long 读入 int 内存空间(例如使用 scanf)。
int i;
scanf("%ld", &i);
使用浮点数作为 for 循环中的索引而不是定点结构,可能导致迭代次数多于或少于预期。
char *arr = new char[9];
for(float j=1; j>0; j=j-0.1) { // will clobber 10 characters, not 9
*arr++ = 'A';
在具有不同类型宽度的数组之间复制
float floatArr[10] = { 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 };
char charArr[10];
memcpy(charArr, floatArr, sizeof(float));