当我编写代码时,我始终注重安全性。问题在于我需要知道该注意什么并且如何预防。
是否有一个清单列出了最常见的(C++)软件漏洞以及如何避免它们?
对于特定用途的C++软件,比如Linux控制台软件或Web应用程序,怎么办呢?
当我编写代码时,我始终注重安全性。问题在于我需要知道该注意什么并且如何预防。
是否有一个清单列出了最常见的(C++)软件漏洞以及如何避免它们?
对于特定用途的C++软件,比如Linux控制台软件或Web应用程序,怎么办呢?
现有许多资源可供使用,其中一些如下:
http://www.deitel.com/ResourceCenters/Programming/C/CSecurity/tabid/1549/Default.aspx
http://en.wikipedia.org/wiki/Buffer_overflow#Use_of_safe_libraries
为此,请仅使用检查边界的函数,如strncpy()
而不是strcpy()
。strncpy
很糟糕,因为它可能会留下没有以 null 结尾的字符串,导致更严重的缓冲区溢出。替代方案如 strlcpy
, strcpy_s
和 memcpy
更好。 - Gabe还有一些问题可能会引起您的关注,例如: 1. 分段错误 2. 内存泄漏 3. 内存分配错误等等...