当前位置导航:炫浪网>>网络学院>>编程开发>>C++教程>>Visual C++教程

使用 Visual C++ 防御功能保护您的代码

    目录

    基于堆栈的缓冲区溢出检测 (/GS)

    安全异常处理 (/SafeSEH)

    DEP 兼容性 (/NXCompat)

    映像随机化 (/DynamicBase)

    更安全的函数调用

    C++ Operator::new

    如果失败会怎样?

    许多代码都是使用 C 和 C++ 编写的,但遗憾的是,其中很多此类代码都有一些甚至连开发人员都不知道的安全漏洞。以任何语言编写的程序都存在可能会使其用户受到攻击的漏洞,但 C 和 C++ 语言在 Internet 历史上占有特殊的地位,原因是它们的许多安全漏洞都源自使其大受欢迎的功能:对计算机硬件无限制的访问以及随之而来的性能优势。在阅读有关安全和 C 或 C++ 方面的资料时,通常很容易看到“缓冲”和“溢出”等术语,因为缓冲通常就是直接访问内存的一个示例。这种类型的直接访问虽然功能非常强大,但也非常非常危险。

    对于在生成 C 和 C++ 代码过程中出现的许多缓冲区溢出问题,其原因有多种。第一个原因我在上面已提到过:编程语言提供对易受攻击内存的直接访问。第二个原因是开发人员出错。第三个原因是编译器通常不提供防御功能。对于第一个问题很容易提供补救措施,但自此 C 和 C++ 开始成为不同的语言。

    开发人员出错问题可通过培训来部分加以解决,但是我还没有真正看到在这方面教育机构的兴起。行业中也确实有一些进行安全培训的机构,但是我们只能提供部分解决方案或解决部分问题,我非常希望看到各所大学能对学生进行更多有关软件安全方面的教育。您可能要问“为什么教育机构不尝试培训这一非常重要的主题?”说实话,我也不知道为什么。不过这确实非常让人郁闷。

共6页 首页 上一页 1 2 3 4 5 6 下一页 尾页 跳转到
相关内容
赞助商链接