对于程序员和软件开发人员来讲,网络论坛提供了一个交流知识和寻找具体编码难题答案的好地方。遗憾的是,他们并不老是准确信息的来源。
弗吉尼亚理工大学的一组研究人员分析了数百篇关于Stack Overflow的文章,(Stack Overflow是一个很受欢迎的开发者论坛或者说Q&A网站)发现许多提供答案的开发人员并无意识到编码选项的安全含义,并显示出了缺少网络安全培训。java
他们发现的另外一件事是,有时,最热门的帖子或答案包含了一些不安全的建议,这些建议会在软件中引入安全漏洞,而正确的修复程序不那么受欢迎,也不容易看到,由于它们是用户提供的,其信誉分数较低。程序员
所以,提问者和回答者之间的社会动态确定会对人们的安全选择产生影响。编程
得到正确的安全性安全
研究人员集中研究与Java安全性相关的帖子,从软件工程和安全角度考虑,针对的是Spring Security的问题上发表的文章,Spring Security是一个第三方Java框架,为企业应用程序提供身份验证、受权和其余安全特性。网络
Spring Security旨在促进安全编码,但很明显,许多程序员发现它的APIs过于复杂,文档记录不足,运行时系统的错误报告使人困惑。框架
“此外,多语言支持获取数据的能力至关弱。在安全应用程序中,多语言的状况是很常见的,由于一般数据是用一种编程语言加密的(好比:Python)并在另外一个编程语言解密(例如:Java)。这些问题会严重阻碍开发人员的生产力。”编程语言
开发人员在花太多时间解决APIs的正确用法时常感到沮丧,而且经常选择了彻底不安全的修补程序,好比使用过期的加密哈希函数,禁用了跨站点请求伪造保护,信任了HTTPS验证中的全部证书,或者使用了过期的通讯协议。函数
研究人员指出:“这些糟糕的编码实践,若是在生产代码中使用,将严重损害软件产品的安全性。”工具
建议每一个人都参与测试
“这项工做的意义在于,咱们为大量使人担心的安全编码问题提供了经验证据,而这些问题以前并无被报道过。这些问题是因为各类缘由,包括企业安全应用的快速增加,软件开发人员缺少安全培训,以及设计了糟糕的安全库,”研究人员指出。
他们建议设计人员删除或弃用弱安全性的APIs,设计简化的APIs,并在默认状况下实现强大的安全性防护,并设计干净且有帮助的错误报告接口,其中还包括可能的根本缘由和解决方案。
另外一方面,开发人员绝对应该须要安全检查,并进行安全测试,以检查实现的功能是否如预期的那样工做。在Stack Overflow和其余相似的社区网站和论坛上流行和接受的答案应该像一粒盐,若是可能的话,它们的准确性应该是独立的。
最近的相关研究显示,排名靠前但不够充分的编程Web教程也将漏洞引入了软件。
最后,工具生成器应该考虑使它们可以自动诊断安全错误,并建议安全补丁或解决方案。
“构建漏洞防护技术,比较同级应用程序使用相同系列的APIs来推断和警告潜在的错误使用。探索检查和增强安全性相关注释、代码和配置之间的语义一致性的方法。构建新的方法来转换声明性安全性和编程式安全性的实现,”研究人员总结道。
小编总结:当程序员或者软件开发者在编码遇到难题时,找网络论坛,或寻大神求助,或本身探索都是可行的,但必定要意识到编码选项的安全性,选择了错误的编码,将严重影响企业软件产品,所以,安全编码,人人有责。
本文由阿里聚安全编译,原文连接:https://www.helpnetsecurity.c...