15.5. 使用 GCC 强化代码


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

发行版本选项

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

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

开发选项

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

$ gcc ... -Walloc-zero -Walloca-larger-than -Wextra -Wformat-security -Wvla-larger-than ...
Copy to Clipboard Toggle word wrap

其它资源

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat