`

2010最危险的编程错误

阅读更多
历史上第一个bug

网络无处不在的今天,安全问题日益严峻,攻击事件层出不穷,应该说,软件系统中代码存在安全漏洞是主要的祸因之一。而这实际上反映了软件开发人员在编程的安全性方面缺乏必要的培训和常识。

由CWS(美国国土安全部下属的软件保证项目)与SANS(权威安全培训组织)联合编制的最危险的25个编程错误,是软件开发人员非常好的快速学习资料。日前,两个机构发布了2010年的编程错误列表。最新的25个最危险的编程错误如下。


1. 跨站点脚本攻击(4)

2. SQL注入(3)

3. 经典缓冲区溢出(1)

4. 跨站点请求伪造(7)

5. 不正确的访问控制(授权)

6. 在安全决策中依赖不可信的输入

7. 不正确地将路径名限制为受限路径

8. 上传危险类型的文件不受限

9. 操作系统命令中特殊因素的处理不正确(操作系统命令注入)(5)

10. 敏感信息未加密(6)

11. 使用硬编码凭据(21)

12. 以不正确的长度值访问缓冲区

13. PHP程序中Include/Require语句文件名控制不正确(PHP文件侵入)

14. 数组下标验证不正确

15. 异常条件检查不正确

16. 错误消息泄露信息(9)

17. 整数溢出

18. 缓冲区大小计算错误

19. 关键函数缺乏身份验证

20. 下载未经完整性检查的代码(15)

21. 对关键资源的错误权限分配(22)

22. 资源分配没有限制

23. URL重导向到不受信的资源

24. 使用被破解或有风险的加密算法(20)

25. 存在竞争情况(Race condition)(8)

其中后加括号有数字的,是该项错误去年的排名。显然,连续两年都入选的错误,千万不要再犯了。

另外,我们对比了去年前25名名单,列出今年落榜的错误如下,相信这些错误仍然具有相当的风险性。

2. 不正确的编码或转义输出

10. 限定缓冲区内操作失败

11. 外部控制重要状态数据

12. 外部控制文件名或路径

13. 不可信搜索路径

14. 控制代码生成错误(代码注入)

15. 错误的资源关闭或发布

17. 不正确的初始化

18. 错误计算

19. 可渗透防护

23. 随机值的错误利用

24. 滥用特权操作

25. 客户端执行服务器端安全


推荐大家下载并仔细研读完整的报告,有条件的可以组织开发团队和公司集中学习。这个报告相对枯燥了一些,如果你对哪些错误有比较直观的一看就懂的示例或者解释,欢迎在下面回复,或者与我们联系。

文章来自:http://news.csdn.net/a/20100219/217067.html
分享到:
评论

相关推荐

    CWE_SANS.rar_doc

    CWE_SANS评出25种最危险的编程错误.doc

    搜索引擎优化高级编程(PHP版)

    第1章 你是编程人员,也是搜索引擎营销人员 1.1 你是谁 1.2 你需要学习什么 1.2.1 SEO和站点体系结构 1.2.2 SEO不能成为马后炮 1.2.3 通信构建抉择 1.2.4 构建细节将会决定成败 1.3 准备软件环境 1.3.1 安装XAMPP ...

    EGCode:危险地松散键入(未发布的同类)的编程语言的概念的错误实现

    实施得不好的编程语言,危险地是松散地键入。 EGCode编译为JavaScript。 没有数据类型(种类) 因为谁需要“”和“”,我是对的吗 版本:0.8.6 print(hello world) var x(10) print([|x| + 15]) ^ supposed to ...

    华为编程开发规范与案例

    软件编程规范培训实例与练习 软件编程规范培训实例与练习  问题分类 1 逻辑类问题(A类)-指设计、编码中出现的计算正确性和一致性、程序逻辑控制等方面出现的问题,在系统中起关键作用,将导致软件死机、功能...

    C++编译器无法捕捉到的8种错误

    c++是一种复杂的编程语言,其中充满了各种...那些编译器无法捕获到的错误才是最危险的。这类错误不太容易察觉到,但可能会导致严重的后果,比如不正确的输出、数据被破坏以及程序崩溃。随着项目的膨胀,代码逻辑的复杂

    PERL语言编程

    从 Perl 最早的文本处理语言开始,它已经发展成为一种非常复杂的,通用的编程语言,以及完整的开发环境,包括调试器,调节器,交叉引用,编译器,库,语法提示编辑器,以及所有其它“真正”的编程语言所具有的所有...

    SEO编程PHP中文版

    4.4 使用500避免索引错误的页面 4.5 用PHP和mod_rewrite重定向 4.5.1 使用重定向来改变文件名 4.5.2 URL修正 4.5.3 正确处理多个域名 4.5.4 使用重定向来改变域名 4.5.5 URL地址标准化:www.example.com对比...

    undocumented windows 2000

    当然,最简单而且危险最小的违规动作就是读取一个无效的内存地址。由于系统显示捕获所有通过空指针进行的内存访问,这是C编程中一个常见的错误,读取一个空指针是让系统崩溃的理想动作。示例代码中的w2k_kill.sys ...

    编程游戏腹泻生物-myrover.rar

    % 然后将 private 下的按文件名排序最靠前的两个函数 做为控制函数, % 并反复调用,根据他们返回的指令控制腹泻生物的运动. % 其间通过函数 survey 将生物的运动画出来. % 直到有一方的生物踩上了大便.judgement给...

    架构师201003.pdf

    CWE/SANS发布2010年25个最危险的编程错误 Google将不再支持老式浏览器 SOA设计关乎契约还是服务实现? Chrome中5大安全增强 Amazon EC2因订购过多而导致内部网络延迟? 全景透视Oracle对Sun的未来规划 ...

    UGNX后处理器PUI版

    UG编程参数设置错误了,没有智能防呆,输出错误的程序,这样也是非常危险的; 有很多多余的程序段输出;程序输出格式不合理; 高版本UG编程的功能也越来越强大,以前那些低版本的后处理器不支持hole_making等先进...

    C++安全编码(中文版)

    本书介绍了C和C++程序中已经导致危险的、破坏性的基本编程错误,包括在字符串、指针、动态内存管理、整数、格式化输出、文件I/O等中的漏洞或缺陷。本书还提供了对这些编程错误的深入剖析,并给出缓解策略,以减少或...

    制作安全性高的PHP网站的几个实用要点

    大家都知道PHP已经是当前最流行的Web应用编程语言了。但是也与其他脚本语言一样,PHP也有几个很危险的安全漏洞。所以在这篇教学文章中,我们将大致看看几个实用的技巧来让你避免一些常见的PHP安全问题。 技巧1:使用...

    C安全编码标准.pdf

    《C安全编码标准》提供了在C编程语言中进行安全编码的指导方针,描述了C语言程序中导致软件潜在风险根源的编码错误,并根据严重性、被利用的可能性以及修补成本设置了优先级。每个指导方针提供了不安全代码的例子...

Global site tag (gtag.js) - Google Analytics