《WEB应用与开发(安全).ppt》由会员分享,可在线阅读,更多相关《WEB应用与开发(安全).ppt(11页珍藏版)》请在三一办公上搜索。
1、WEB应用与开发常见的安全缺陷及解决办法,余德贵,1、web应用程序的结构和安全(ASP),可能出现的安全问题:(1)服务端:操作系统、Web网站访问安全(TCP/IP 端口)、应用程序(ASP/执行文件的运行等)、数据库安全(如数据的合法性)(2)客户端:访问Web网站资源时出现的安全,如脚本安全,执行文件(exe、bat)的下载和运行(3)传输:数据被拦截、侦听、数据包解密等。,(2)客户端,(1)服务端,(3)传输,2、web应用程序安全(ASP),安全表征:(1)服务端:数据库丢失、数据失窃和修改、据库服务停止、Web网站瘫痪或页面被修改(盗连接)、操作系统崩溃等安全缺陷:操作系统、数
2、据服务和web应用程序本身的缺陷(2)客户端:浏览器、操作系统设置被恶意修改、数据失窃和修改、操作系统崩溃等 安全缺陷:操作系统本身的缺陷、保护意识和非法使用计算机软件,2、web应用程序安全,攻击、侵入网站、病毒(木马设计)的目的:(1)表现自己的计算机水平(好奇)(2)窃取数据机密(如情报)(3)商业目的,如计算机病毒的生产与某些杀毒软件公司有密切联系(4)保护自己程序代码。故意攻击、侵入网站、病毒(木马)设计和传播是犯罪行为!,用autorun.inf文件传播我木马或病毒,最近出现了用autorun.inf文件传播我木马或病毒,它通过使用者的误操作让目标程序执行,达到侵入电脑的目的,au
3、torun.inf常用于对文件的安装等操作,是为了方便使用者运行程序。但因为有木马和病毒通过它传播所以它带来了很大的负面影响。利用TCP/IP协议设计的Nethacker等黑客软件可以穿过Internet网络,找到共享的主机,然后进行相应操作。所以当您通过Modem上网时,千万要小心,因为一不小心,您的主机将完全共享给对方了。防范这类事情发生的方法无非是经常检查系统,给系统打上补丁,经常使用反黑杀毒软件,上网时打开防火墙,注意异常现象,留意AutoRun.inf文件的内容,关闭共享或不要设置为完全共享,且加上复杂的共享密码。,操作系统、数据服务和web应用程序本身的缺陷攻击、侵入网站,Wind
4、ows 的某些服务程序,Tcp/ip 数据共享SQL Server 的sql语句(数据库注入)ASP程序代码执行安全,web应用程序开发安全职责,保证应用程序的安全应当从编写第一行代码的时候开始做起,原因很简单,随着应用规模的发展,修补安全漏洞所需的代价也随之快速增长。根据IBM的系统科学协会(Systems Sciences Institute)的研究,如果等到软件部署之后再来修补缺陷,其代价相当于开发期间检测和消除缺陷的15倍。为了用最小的代价保障应用程序的安全,在代码本身的安全性、抗御攻击的能力等方面,开发者应当担负更多的责任。然而,要从开发的最初阶段保障程序的安全性,必须具有相应的技能
5、和工具,而真正掌握这些技能和工具的开发者并不是很多。虽然学写安全的代码是一个复杂的过程,最好在大学、内部培训会、行业会议上完成,但只要掌握了下面五种常见的ASP.NET应用安全缺陷以及推荐的修正方案,就能够领先一步,将不可或缺的安全因素融入到应用的出生之时。,一、不能盲目相信用户输入 在Web应用开发中,开发者最大的失误往往是无条件地信任用户输入,假定用户(即使是恶意用户)总是受到浏览器的限制,总是通过浏览器和服务器交互,从而打开了攻击Web应用的大门。实际上,黑客们攻击和操作Web网站的工具很多,根本不必局限于浏览器,从最低级的字符模式的原始界面(例如telnet),到CGI脚本扫描器、We
6、b代理、Web应用扫描器,恶意用户可能采用的攻击模式和手段很多。处理办法:用客户/服务端基本数据验证:始终对所有的用户输入执行验证,且验证必须在一个可靠的平台上进行,应当在应用的多个层上进行。除了输入、输出功能必需的数据之外,不要允许其他任何内容。设立“信任代码基地”,允许数据进入信任环境之前执行彻底的验证。登录数据之前先检查数据类型。详尽地定义每一种数据格式,例如缓冲区长度、整数类型等。严格定义合法的用户请求,拒绝所有其他请求。测试数据是否满足合法的条件,而不是测试不合法的条件。这是因为数据不合法的情况很多,难以详尽列举。,3、web应用程序开发安全措施(ASP),二、sql server
7、数据防止注入 攻击者可以在输入域中插入特殊字符,改变SQL查询的本意,欺骗数据库服务器执行恶意的查询恶意查询,有可能获取后端数据库保存的任何信息,例如客户信用卡号码的清单甚至进入操作系统。Sql注入式攻击是指利用设计上的漏洞,在目标服务器上运行Sql 命令以及进行其他方式的攻击 动态生成Sql命令时没有对用户输入的数据进行验证是Sql注入攻击得逞的主要原因:Password=“123456 or 2=2”Password=“123456 delete from user”,3、web应用程序开发安全措施(ASP),二、sql server 数据防止注入 运行dos命令 net user xp_
8、cmdshell add exec master.dbo.xp_cmdshell net localgroup administratorsEXEC master.dbo.xp_cmdshell net user aaa 123456/addEXEC master.dbo.xp_cmdshell net user aaa 123456/add EXEC master.dbo.xp_cmdshell net localgroup Administrators aaa/addEXEC master.dbo.xp_cmdshell net localgroup COMPUTERRemote Desk
9、top Users aaa/add处理办法:最小权限原则。特别是不要用dbo或者sa账户,为不同的类型的动作或者组建使用不同的账户,最小权限原则适用于所有与安全有关的场合对用户输入进行检查。对一些特殊字符,比如单引号,双引号,分号,逗号,冒号,连接号等进行转换或者过滤;使用强数据类型,比如你需要用户输入一个整数,就要把用户输入的数据转换成整数形式;限制用户输入的长度等等。这些检查要放在server运行,client提交的任何东西都是不可信的使用存储过程,如果一定要使用sq语句,那么用标准的方式组建sql语句,比如可以利用parameters对象,避免用字符串直接拼sq命令。当sql运行出错时,不要把数据库返回的错误信息全部显示给用户,错误信息经常会透露一些数据库设计的细节针对常用的sql注入式攻击方式对症下药,3、web应用程序开发安全措施(ASP),三、其他安全(1)上传文件:.asp.exe.doc 安全检测(2)客户端代码安全。参考资料:百度搜索:关键词 网络安全、asp安全 sql 注入,3、web应用程序开发安全措施(ASP),
链接地址:https://www.31ppt.com/p-6523307.html