`

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
分享到:
评论

相关推荐

    C++语言99个常见编程错误.pdf

    《C++语言99个常见编程错误》是Stephen C. Dewhurst结合自己多年教授C++课程的经验撰写的书籍,该书详细介绍了在C++编程中可能遇到的99个常见错误,并提供了相应的解决方案和避免策略。Stephen C. Dewhurst不仅是C++...

    c语言出错中英文对照表 关于c编程编译错误的

    "invalid use of NULL pointer"错误意味着你试图访问一个值为NULL的指针,这是非常危险的,因为NULL指针不指向任何内存位置。 6. **内存分配错误(Memory Allocation Errors)**: 动态内存管理是C语言的一部分,...

    AB小PLC Micro800编程指令

    文档提供了ABL错误代码和其他功能块的详细信息,这有助于用户在编程和故障排查时进行参考。 8. 指令的字母顺序排列与功能排列 为了便于查找,手册将指令按字母顺序和功能类型进行了排列。用户可以快速定位到所需...

    经常见的c语言错误集锦

    然而,C语言的强大同时也伴随着易犯的错误,这些错误往往源于其对程序员的自由度较高,要求程序员具有较高的编程技巧和严谨性。本文将围绕常见的C语言错误,包括编译错误、链接错误及运行时错误,进行深入解析,并...

    PILZ可编程控制器手册

    《PILZ可编程控制器手册》是一份详尽的技术文档,专为PILZ的可编程控制系统PSS®设计,其目标是为用户提供全面的操作、编程及维护指导。该手册适用于各种设备的安全控制,旨在帮助工程师和技术人员掌握PILZ控制器的...

    结构化文本(ST)编程参考手册.pdf

    其中,危险等级的错误操作有可能导致人身伤害、设备损坏或更严重的安全事故;而注意等级虽然通常不会导致严重后果,但同样需要认真对待,因为在不同情况下,它们也有可能引起严重的后果。 ### 设计方面的注意事项 ...

    编程备查ASPNET编译执行常见错误及解决方法53条汇总[总结].pdf

    以下是一些常见的ASP.NET编程错误及其解决方法: 1. 检测到有潜在危险的Request.Form值 当ASP.NET检测到用户提交的数据可能包含恶意脚本时,会触发此错误。解决方案是禁用请求验证,可以通过在页面头部或web....

    三菱机器人编程功能手册.pdf

    同时,计划也应包括如何使用紧急停止设备,以确保在教学或带电维护工作中,一旦发生危险情况,能够立即切断电源,避免事故发生。 为了有效预防紧急情况的发生,操作区域应设置明显的标识,例如在启动开关等关键位置...

    SINUMERIK 840D sl_NC编程手册.pdf

    在编程手册中,读者将找到关于SINUMERIK 840D sl NC编程的详细步骤、指令集、编程示例以及错误处理方法。手册可能不包含所有产品的详细信息,但提供了基本的编程和操作指导,使得用户能够有效地利用此系统进行复杂的...

    爱普生机械手编程

    爱普生机械手编程涉及到多个方面的知识点,包括机械手的基本知识、编程环境、编程语言...需要注意的是,由于文档可能包含OCR扫描过程中的误差,所以在编程和操作时要根据实际情况对可能出现的识别错误进行校正和理解。

    C++ 编程思想编程思想

    4. **异常处理**:C++通过异常处理来处理程序运行时可能出现的错误,这是保证程序健壮性的重要手段。书中会介绍如何正确使用try、catch和throw语句,以及异常安全编程策略。 5. **内存管理**:C++允许直接操作内存...

    PLC 可编程控制器 课程设计

    7. **故障诊断与调试**:学习如何使用PLC的监控功能来查找并解决程序错误,这对于提高系统稳定性至关重要。 8. **项目实施**:在课程设计过程中,你需要设计一个具体的控制项目,可能涉及编写程序、搭建模拟环境、...

    C语言核心编程-c语言

    6. **内存管理**:C语言允许程序员直接申请和释放内存(malloc, free),这使得C语言既灵活又危险,因为错误的内存管理可能导致内存泄漏或段错误。 7. **位操作**:C语言提供了位运算符,如位与(&)、位或(|)、位...

    KUKA 系统软件 8.3, 最终用户操作及编程指南.pdf

    "KUKA 系统软件 8.3 最终用户操作及编程指南" KUKA 系统软件 8.3 是一款工业机器人运动编程基础软件,旨在帮助用户更好地理解和掌握 KUKA 机器人的操作和编程技术。本指南涵盖了 KUKA 系统软件 8.3 的基本概念、...

    安川离线编程学习

    - “危险”表示错误操作可能导致严重伤害甚至死亡。 - “注意”表示错误操作可能导致轻微至中度伤害或物品损坏。 - “强制”和“禁止”分别表示必须执行和绝对禁止的操作。 - **菜单与按钮操作**: - “* * * * ...

    KUKA机器人高级编程手册

    此外,手册中还包含了一些术语的定义,这对于编程人员来说是非常重要的,因为正确理解术语可以帮助他们避免在编程时出现误解或错误。为了进一步确保安全,手册还讨论了工作空间、安全区和危险区的概念。这不仅涵盖了...

    三菱FB编程手册

    功能块是一种将梯形图块转换成通用部件的技术,使开发者能够在顺控程序中重复使用这些功能块,从而提高编程效率,减少编程错误,提升程序质量。 安全注意事项是手册中不可或缺的部分,它强调了在使用设备前阅读手册...

    日立 MICRO-EHV编程手册中文带书签版

    《日立 MICRO-EHV编程手册中文带书签版》是一份针对日立品牌的MICRO-EHV系列可编程控制器(PLC)的操作指导手册。该手册不仅覆盖了编程相关的内容,还包括了安全使用、故障处理和设备维护等方面的知识。由于手册内容...

Global site tag (gtag.js) - Google Analytics