在软件安全中,编程语言的选择是一个重要因素。在许多情况下,老代码、开发团队中的可用技术或者客户需求、环境等都可能限制编程语言的选择。在评估和选择编程语言时,你应当关注下面这些与安全相关的问题:
1、你的程序员用过哪些语言?在程序员使用自己基本没有开发经验的语言进行编码时,就更有可能犯错误。
2、该语言有助于或有碍于安全代码的开发吗?
3、该语言有可用的安全编码标准吗?
4、该语言存在哪些安全问题?有哪些策略可以减轻其威胁?其有效性如何?
权衡语言的选择:在许多情况下,语言的选择会直接影响到系统的安全性。最显著的例子是C语言和Java语言中数组边界检查的影响。虽然多数现代的C编译器支持运行时的边界检查,但该特性会造成Web服务器、操作系统、应用程序等的缓冲区溢出漏洞,但对于性能等因素非常重要的环境(如嵌入式设备和智能卡)来说,就不是那么回事儿了。Java虚拟机可能会带来太多的性能问题,导致潜在的服务被拒绝。类似的安全问题使得设计者或编码者理解某种计算机语言存在哪些弱点非常重要。如果选择了某种编程语言,设计者或编码者知道哪些弱点更容易出现也很重要。
(责任编辑:)