For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
安全问题是程序员在开发软件的时候需要重点关注的问题之一,下面我们就通过案例分析来了解一下,软件开发安全问题包含哪些类型。
1、安全漏洞
缓冲区溢出,它指当计算机向缓冲区内填充数据位数时超过缓冲区本身的容量,溢出的数据覆盖在合法数据上,以及因此带来的栈缓冲区溢出攻击。
这类攻击包括缓冲区溢出攻击和命令注入攻击。它们都具备的一大特点是:
黑客欺骗程序将本应做为数据的输入当作是代码,并进一步执行这些恶意代码。
针对网页程序的弱点和对应的攻击方式,包括SQL注入攻击、跨站脚本攻击(XSS)、跨站请求伪造(CSRF)。
这类攻击的共同点和之前一样,都是黑客通过诱骗易受攻击的程序,将有问题的数据当作代码。这些代码可被用于劫持程序,盗窃机密,或是破坏重要信息。
2、代码防护
现在,关于大部分类似漏洞的防护措施都是针对“ahighlevel”。例如,在使用任何不被信任的输入前进行验证,确保输入数据的大小不会超过缓冲区容量,以此保证程序安全。
对前文提到的其他四种攻击,存在漏洞的程序会在piecing另一程序时一并执行恶意命令代码。举个例子,假设有个应用程序想得到用户的用户名和密码作为输入,然后splicing这些用户名和密码到一个SQL可查询数据库的模板程序里。不过,某些用户名或密码可能包含SQL命令,导致程序执行与查询本意不同的命令。
3、底层控制的安全
事实上,危险的漏洞类型莫过于远程代码执行漏洞(ACE),它允许攻击者在目标系统上执行任何代码。类型不安全的语言(C/C++)中薄弱的内存管理机制会导致很多漏洞,诸如ACE、释放后重引用(UAF)、二次释放和缓冲区溢出。
用类型安全的语言(如Java)编写的程序不会受到这类内存错误的影响,因此消除了很多漏洞。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。