纯属偶然,我偶然发现了一篇文章,其中提到您可以使用 -pie -fPIE
“启用”ASLR(或者更确切地说,让您的应用程序支持 ASLR)。 -fstack-protector
也是普遍推荐的(尽管我很少看到解释它如何保护以及防止哪些类型的攻击)。
是否有有用的选项列表以及它们如何提高安全性的说明?
...
当您的应用程序使用大约 30 个库而没有使用这些库时,这些措施到底有多大用处? ;)
最佳答案
Hardened Gentoo 使用这些标志:
CFLAGS="-fPIE -fstack-protector-all -D_FORTIFY_SOURCE=2"
LDFLAGS="-Wl,-z,now -Wl,-z,relro"
在默认的 phoronix 基准测试套件中,与优化的 Gentoo linux(包括 PaX/SElinux 和其他措施,而不仅仅是 CFLAGS)相比,我发现性能下降了大约 5-10%。
关于c - 有用的 GCcflags来提高程序的安全性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9398046/