15.5. 使用 GCC 强化代码


当编译器将源代码转换为对象代码时,它可以添加各种检查来防止经常被利用的情况,从而提高安全性。选择正确的编译器选项集可帮助生成更安全的程序和库,而无需更改源代码。

发行版本选项

对于目标为 Red Hat Enterprise Linux 的开发人员,推荐使用以下选项列表:

$ gcc ... -O2 -g -Wall -Wl,-z,now,-z,relro -fstack-protector-strong -D_FORTIFY_SOURCE=2 ...
  • 对于程序,添加 -fPIE-pie 位置独立的可执行文件选项。
  • 对于动态链接的库,强制 -fPIC (Position Independent Code)选项间接提高了安全性。

开发选项

建议您在开发过程中检测安全漏洞。使用这些选项以及发行版本的选项:

$ gcc ... -Walloc-zero -Walloca-larger-than -Wextra -Wformat-security -Wvla-larger-than ...

其它资源

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.