与内存空间布局相关的信息不可被外界感知
1.5 ID_addressExposure
函数、对象、缓冲区的地址以及相关内存区域的长度等信息不可被外界感知,否则会成为攻击者的线索。
示例:
int foo(int* p, int n) {
if (n >= some_value) {
log("buffer address: %p, size: %d", p, n); // Non-compliant
}
}
示例代码将缓冲区的地址和长度输出到日志是不安全的,这种代码多以调试为目的,不应将其编译到产品的正式版本中。