是什么让 Buffer.allocUnsafe() 和 Buffer.allocUnsafeSlow() "不安全"?


\What makes Buffer.allocUnsafe() and Buffer.allocUnsafeSlow() "unsafe"?

调用 Buffer.allocUnsafe()Buffer.allocUnsafeSlow() 时,分配的内存段未初始化(未清零)。虽然这种设计使内存分配速度非常快,但分配的内存段可能包含可能敏感的旧数据。使用由 Buffer.allocUnsafe() 创建的 Buffer 而没有完全覆盖内存可以让旧数据在读取 Buffer 内存时泄漏。

\When calling Buffer.allocUnsafe() and Buffer.allocUnsafeSlow(), the segment of allocated memory is uninitialized (it is not zeroed-out). While this design makes the allocation of memory quite fast, the allocated segment of memory might contain old data that is potentially sensitive. Using a Buffer created by Buffer.allocUnsafe() without completely overwriting the memory can allow this old data to be leaked when the Buffer memory is read.

虽然使用 Buffer.allocUnsafe() 有明显的性能优势,但必须格外小心以避免将安全漏洞引入应用。

\While there are clear performance advantages to using Buffer.allocUnsafe(), extra care must be taken in order to avoid introducing security vulnerabilities into an application.

AltStyle によって変換されたページ (->オリジナル) /