资源描述
单击此处编辑母版文本样式,第二级,第三级,第四级,单击此处编辑母版文本样式,第二级,第三级,第四级,安全优化,第十章,安全优化第十章,回顾与作业点评,Spring,如何与,Struts 2,集成?,Spring,如何与,Hibernate,集成?,为什么使用,Web,服务?,使用,JQuery,的好处?,回顾与作业点评Spring如何与Struts 2集成?,预习检查,DDoS,攻击的主要攻击方式包括?,对表单输入的数据应该作哪些验证?,防止,SQL,注入有哪些方法?,在,IIS,上配置,https,协议有哪些主要的步骤?,预习检查DDoS攻击的主要攻击方式包括?,本章任务,使用,MD5,加密密码字段,防止,SQL,注入,防范,XSS,攻击,配置数据库备份,配置,Tomcat,支持,HTTPS,协议,本章任务使用MD5加密密码字段,本章目标,网站面临的安全风险,安全优化方案,强化程序安全,强化数据安全,本章目标网站面临的安全风险,网站面临的安全风险,SQL注入,网络监听,字典攻击,系统漏洞扫描,DDoS攻击,知己知彼,百战不殆,使用常见的网络攻击方法是了解网站是否安全的途径,网站面临的安全风险SQL注入知己知彼,百战不殆,使用常见的网,SQL,注入,SQL,注入是通过修改,URL,参数或提交特殊的表单信息等方式将恶意的,SQL,命令注入到后台数据库引擎执行的能力,SQL注入SQL注入是通过修改URL参数或提交特殊的表单信息,SQL,注入,通过“用户登录”功能注入,String Sql=select ID,Name,Phone from Users where username=+username+and password=+password+,String Sql=select ID,Name,Phone from Users where username=or 1=1-and LoginPwd=,username,为,or 1=1-,password,为空,SQL注入通过“用户登录”功能注入String Sql=s,网络监听,利用网络监听可以拦截网络传输过程中的数据,网络监听利用网络监听可以拦截网络传输过程中的数据,字典攻击,字典攻击也叫暴力破解,其原理就是将可能包含有字符串的多个密码组合,逐个验证,字典攻击字典攻击也叫暴力破解,其原理就是将可能包含有字符串的,系统漏洞扫描,利用服务器漏洞也是网站遭受攻击常见的攻击方式,IIS,漏洞,应用软件的漏洞,利用服务器漏洞扫描软件,X-Scan,发现系统漏洞,配置扫描参数,开始扫描,根据设置的,IP,范围和扫描模块逐项扫描,扫描结束,得到扫描报告,分析扫描报告,查看扫描报告中提示的安全漏洞解决方案,系统漏洞扫描利用服务器漏洞也是网站遭受攻击常见的攻击方式,系统漏洞扫描,X-Scan,系统漏洞检测报告,扫描时间,检测结果,主机列表,主机分析,安全漏洞及解决方案,系统漏洞扫描X-Scan系统漏洞检测报告,DDoS,攻击,DDoS攻击也叫拒绝服务式攻击,它是利用合理的服务请求来占用过多的服务器资源,从而让服务器无法正常提供服务,DDoS攻击DDoS攻击也叫拒绝服务式攻击,它是利用合理的服,DDoS,攻击,DDoS,攻击主要的两种攻击方式,流量攻击,致使正常的网络请求的数据包无法达到主机,资源耗尽攻击,导致主机的内存、,CPU,被耗尽而无法提供服务,从理论上讲,DDoS,攻击是不可避免的,服务器遭遇,DDoS,攻击的常见现象,大量等待处理的,TCP,连接,大量的无用的数据包,源地址为假,突然增加的大量的访问请求,造成网络堵塞,大量占用资源较多的访问请求造成服务器过载,甚至死机,DDoS攻击DDoS攻击主要的两种攻击方式,网站安全优化方案,保障网站物理安全,强化网站程序安全,强化网站数据安全,强化网站服务器安全,网站安全优化方案保障网站物理安全,共性问题讲解,常见调试问题及解决办法,代码规范问题,共性问题集中讲解,共性问题讲解常见调试问题及解决办法共性问题集中讲解,强化程序安全控制输入,程序对获取的数据缺乏校验是网站被攻击的原因之一,例如利用,URL,传递参数,http:/localhost/BookDetail.aspx?bid=4943,控制输入就是在验证数据的有效性、完整性之后,实现数据的安全性,输入包括:用户输入的表单数据和应用程序的往返数据,如:,ViewState,、,Cookie,、查询字符串参数等,强化程序安全控制输入程序对获取的数据缺乏校验是网站被攻击的,强化程序安全控制输入,验证输入表单数据包括:,验证必填项不为空,验证数据的类型:如手机,必须是数字组合,验证数据的长度:如用户名、密码,必须是,420,位,验证数据的有效性:如,Email,,必须含“,”,符号,保证,URL,输入参数有效,使用系统类型转换函数,ToNumber(),、,ToValidId(),、,ToInt(),等,强化程序安全控制输入验证输入表单数据包括:,强化程序安全防止,SQL,注入,防止,SQL,注入的方法,对于拼接的,SQL,语句要过滤,SQL,关键字,对于数据库类型的查询参数,最好使用系统类型转换函数进行强制转换,使用参数化查询,参数化查询是最有效防止,SQL,注入的方法,string sql=SELECT*FROM Books WHERE Id=Id;,SqlDataReader reader=DBHelper.GetReader(sql,new SqlParameter(Id,id),);,强化程序安全防止SQL注入防止SQL注入的方法 st,强化程序安全保护关键数据,关键数据一般是指对网站系统能产生重大影响的数据,管理员账号和密码,用户账号和密码,信用卡的卡号和密码,用户的隐私信息,使用,MD5,加密,使用,MD5,加密管理员密码和用户密码,修改管理员和用户登录代码,使用,MD5,验证密码,MD5,是一种广泛使用的加密算法,具备不可逆性,强化程序安全保护关键数据关键数据一般是指对网站系统能产生重,练习,使用,MD5,加密登录密码,需求说明,添加用户信息,使用,MD5,加密用户密码;用户登录,验证登录是否成功,实现思路,添加用户,输入用户名和密码信息,使用,MD5,加密用户密码,用户登录,分别输入正确、错误的密码,验证登录是否成功,完成时间:,15,分钟,练习使用MD5加密登录密码需求说明完成时间:15分钟,共性问题集中讲解,常见调试问题及解决办法,代码规范问题,共性问题集中讲解,共性问题集中讲解常见调试问题及解决办法共性问题集中讲解,详细的错误页面提示导致信息泄露,强化程序安全模糊错误提示,发生错误或者异常时,返回自定义错误信息,给用户模糊的错误提示,比如不论用户名错误、密码错误或认证码错误,统一提示“登录信息错误,请重新登录”,java.lang.NullPointerException,/error.jsp,配置,web.config,自定义错误页面,详细的错误页面提示导致信息泄露强化程序安全模糊错误提示发生,强化程序安全记录系统日志,记录系统日志,记录的信息包括,管理员登录信息,管理员所有操作信息,会员购物信息,程序错误和异常信息,日志要真实,只能查看,不能修改和删除,强化程序安全记录系统日志记录系统日志,强化程序安全防止跨站脚本攻击,跨站脚本攻击,(XSS),指攻击者利用网站程序对用户输入过滤不足,输入可以显示在页面上对其他用户造成影响的,HTML,代码,案例:,QQ,邮箱中的挂马漏洞,跨站脚本攻击的两种方式,调用远程文件,一般使用,iframe,实现,读取本地用户隐私文件(如,Cookie,),然后将用户隐私文件上传到远程服务器,)width=1 height=1,调用远程木马的,URL,地址,强化程序安全防止跨站脚本攻击跨站脚本攻击(XSS)img,强化程序安全防止跨站脚本攻击,防止跨站脚本攻击的方式,为所有的,iframe,增加,Security,属性,设置值为,restricted,设置,Cookie,的,HttpOnly,属性,可有效防止,Cookie,通过脚本泄密,构造过滤,XSS,的方法,FilterXSS(),过滤标签,xml,、,link,、,style,、,embed,、,iframe,、,frame,等,过滤,DOM,事件(比如,onload,)、,Style,中的,expression,等,强化程序安全防止跨站脚本攻击防止跨站脚本攻击的方式,强化数据安全,服务器磁盘阵列,使用,RAID,磁盘阵列可以有效的防止因硬盘损坏导致数据的丢失,RAID,是是独立冗余磁盘阵列。它不是一个磁盘,而是一组磁盘,利用冗余的磁盘来处理数据,RAID,类型,RAID 0,RAID 1,RAID 10,强化数据安全服务器磁盘阵列使用 RAID 磁盘阵列可以有效,强化数据安全,服务器磁盘阵列,RAID 0,不具有冗余,并行,I/O,,速度最快,RAID 1,速度没有提高,可靠性最高,RAID 5,一种存储性能、数据安全和存储成本兼顾的方案,强化数据安全服务器磁盘阵列RAID 0,强化数据安全,服务器磁盘阵列,RAID 10,RAID01,是先条带化再镜像,,RAID10,是先镜像再条带化,性能和安全性均高于,RAID5,,但是磁盘利用率低于,RAID5,强化数据安全服务器磁盘阵列RAID 10,强化数据安全,备份网站和数据库,备份网站的程序文件,防止网站出现各种意外情况,如服务器零件损坏、断线或者被黑客攻击等能及时恢复,“绿环,FTP,数据备份”,是一款专门用于,FTP,数据备份的绿色软件,并且还是免费版本,解压后无须安装即可使用,强化数据安全备份网站和数据库备份网站的程序文件,强化数据安全,备份网站和数据库,网站数据库的备份,以,Oracle 10g,为例,通过批处理文件,+,任务计划的形式实现,set backfile=d:bak%date:0,4%date:5,2%date:8,2%,exp jbit/bdqnorcl file=%backfile%.dmp log=%backfile%.log,rar a%backfile%.rar%backfile%.dmp%backfile%.log,del%backfile%.dmp,del%backfile%.log,强化数据安全备份网站和数据库网站数据库的备份set bac,练习,备份网站程序和数据,需求说明,使用“绿环,FTP,数据备份”备份网站程序文件,通过批处理文件,+,任务计划的形式实现网站数据库文件的每日的自动备份,实现思路,参考学生用书部分,完成时间:,15,分钟,练习备份网站程序和数据需求说明完成时间:15分钟,强化数据安全,配置,HTTPS,协议,配置,Tomcat,支持,HTTPS,协议的步骤:,使用,JAVA_HOME/bin,目录下,keytool,命令生成数字证书,配置,Tomcat,目录下的,server.xml,文件,重启,Tomcat,强制客户端采用,HTTPS,访问,修改,tomcatconfweb.xml,指定证书位置,证书密码,CLIENT-CERT,ClientCertUsers-onlyArea,SSL,/*,CONFIDENTIAL,强化数据安全配置HTTPS协议配置Tomcat支持HTT,练习,配置,HTTPS,协议,需求说明,配置,Tomcat,支持,HTTPS,协议,强制客户端采用,HTTPS,访问,实现思路,使用,keytool,命令生成数字证书,修改,server.xml,文件中关于,SSL,的相关段,重启,Tomcat,,尝试使用,HTTPS,和,HTTP,访问程序,强制客户端采用,HTTPS,访问,重启,Tomcat,,尝试使用,HTTPS,和,HTTP,访问程序,完成时间:,15,分钟,练习配置HTTPS协议需求说明完成时间:15分钟,共性问题集中讲解,常见调试问题及解决办法,代码规范问题,共性问题集中讲解,共性问题集中讲解常见调试问题及解决办法共性问题集中
展开阅读全文