JavaWeb程序设计 课件 ch15 Web 网站安全_第1页
JavaWeb程序设计 课件 ch15 Web 网站安全_第2页
JavaWeb程序设计 课件 ch15 Web 网站安全_第3页
JavaWeb程序设计 课件 ch15 Web 网站安全_第4页
JavaWeb程序设计 课件 ch15 Web 网站安全_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第15章Web网站安全本课教学内容URL操作攻击Web跨站脚本攻击SQL注入密码保护与验证URL操作攻击URL操作攻击介绍例子中,该订单从数据库获取数据的URL为:http://IP:端口/目录/display.jsp?orderno=10034562因为第一个订单的编号为10034562,所以,从客户端源代码上讲,第一个订单右边的"查看明细"链接看起来是这样的:URL操作攻击URL操作攻击介绍

<ahref="http://IP:端口/目录/display.jsp?orderno=10034562">查看明细</a>

该URL非常直观,可以从中看到是获取订单号为10034562的数据,因此,给了攻击者机会。URL操作攻击URL操作攻击介绍攻击者可以很容易地尝试将如下URL输入到地址栏中http://IP:端口/目录/display.jsp?orderno=10034563表示命令数据库查询订单号为10034563的明细信息。因为该订单明细在数据库表的T_ORDERITEM中存在,这里就造成了一个不安全的现象:用户可以查询不是他购买的鲜花订单信息。URL操作攻击还有更加严重的情况,如果网站足够不安全的话,攻击者可以不用登录,直接输入上面格式的URL(如http://IP:端口/目录/display.jsp?orderno=10034585),将信息显示出来。这样,上面的Web程序导致该鲜花订购系统网站为URL操作攻击敞开了大门解决方法要解决以上URL操作攻击,需要程序员进行非常周全的考虑。程序员在编写Web应用的时候,可以从以下两个方面加以注意:1.

为了避免非登录用户进行访问,对于每一个只有登录成功才能访问的页面,应该进行session的检查(session检查的内容已经在前面章节提到)2.为限制用户访问未被授权的资源,可在查询时将登录用户的用户名也考虑进去。如用户名为guokehua,所以guokehua的每一个订单后面的"查看明细"链接可以设计为这样:<ahref="http://IP:端口/目录/display.jsp?orderno=10034563&account=guokehua"> 查看明细 </a>解决方法解决方法 这样,用于该订单从数据库获取数据的URL为: http://ip:端口/目录/display.jsp?orderno=10034563&account=guokehua在向数据库查询时,就可以首先检查"guokehua"是否在登录状态,然后根据订单号(10034563)和用户名(guokehua)综合进行查询。这样,攻击者单独输入订单号,或者输入订单号和未登录的用户名,都无法显示结果Web跨站脚本攻击跨站脚本攻击的原理跨站脚本在英文中称为Cross-SiteScripting,缩写为CSS。但是,由于层叠样式表(CascadingStyleSheets)的缩写也为CSS,为不与其混淆,特将跨站脚本缩写为XSSWeb跨站脚本攻击跨站脚本攻击的原理

跨站脚本,顾名思义,就是恶意攻击者利用网站漏洞往Web页面里插入恶意代码。跨站脚本攻击,一般需要以下几个条件:Web跨站脚本攻击跨站脚本攻击条件:客户端访问的网站是一个有漏洞的网站,但是他没有意识到攻击者在这个网站中,通过一些手段放入一段可以执行的代码,吸引客户执行(如通过鼠标点击等)客户点击后,代码执行,可以达到攻击目的Web跨站脚本攻击具体代码示例见课本Web跨站脚本攻击在实际项目中,攻击过程稍微复杂一些。如前所述,攻击者为了得到客户的隐秘信息,一般会在网站中通过一些手段放入一段可以执行的代码,吸引客户执行(通过鼠标点击等);客户点击后,代码执行,可以达到攻击目的。Web跨站脚本攻击以下这些程序模拟了一个通过站内点击链接的攻击过程。login.jsp、loginResult.jsp、mailList.jsp、attackPage.asp具体代码示例见课本跨站脚本攻击的危害XSS攻击的主要危害包括:盗取用户的各类敏感信息,如账号密码等读取、篡改、添加、删除企业敏感数据读取企业重要的具有商业价值的资料控制受害者机器向其他网站发起攻击防范方法对于XSS攻击的防范,主要从网站开发者角度和用户角度来阐述从网站开发者角度,对XSS最佳的防护主要体现在以下两个方面:1.对于任意的输入数据应该进行验证,以有效检测攻击防范方法2.对于任意的输出数据,要进行适当的编码,防止任何已成功注入的脚本在浏览器端运行;数据输出前,确保用户提交的数据已被正确进行编码;可在代码中明确指定输出的编码方式(如ISO-8859-1),而不是让攻击者发送一个由他自己编码的脚本给用户防范方法以下具体阐述一种实现方法:XSS攻击的一个来源在于,用户登录时,可以让那些特殊的字符也输入进去。因此可在表单提交的过程中,利用一定手段来进行限制。例如,可以限制输入的字符数,来阻止那些较长的script的输入。另外可以Javascript来对字符进行过滤,将一些如%、<、>、[、]、{、}、;、&、+、-、"、(、)的字符过滤掉。防范方法从网站用户角度1.作为网站用户,打开一些Email或附件、浏览论坛帖子时,做操作时一定要特别谨慎,否则有可能导致恶意脚本执行。不过,也可以在浏览器设置中关闭JavaScript2.如果是IE的,可以点击"工具"——"Internet选项"——"安全"——"自定义级别"进行设置SQL注入SQL注入的原理

SQL注入在英文中称为SQLInjection,是黑客对Web数据库进行攻击的常用手段之一。在这种攻击方式中,恶意代码被插入到查询字符串中,然后将该字符串传递到数据库服务器进行执行,根据数据库返回的结果,获得某些数据并发起进一步攻击。SQL注入具体代码示例见课本SQL注入攻击的危害SQL注入攻击的主要危害包括:非法读取、篡改、添加、删除数据库中的数据。盗取用户的各类敏感信息,获取利益通过修改数据库来修改网页上的内容私自添加或删除账号注入木马等SQL注入攻击的危害由于SQL注入攻击一般利用的是SQL语法,这使得于所有基于SQL语言标准的数据库软件,如SQLServer,Oracle,MySQL,DB2等都有可能受到攻击,并且攻击的发生和Web编程语言本身也无关,如ASP、JSP、PHP,在理论上都无法完全幸免。SQL注入攻击的危害SQL注入攻击的危险是比较大的。很多其他的攻击,如DoS等,可能通过防火墙等手段进行阻拦,但是而对于SQL注入攻击,由于注入访问是通过正常用户端进行的,所以普通防火墙对此不会发出警示,一般只能通过程序来控制,而SQL攻击一般可以直接访问数据库,进而甚至能够获得数据库所在的服务器的访问权,因此,危害相当严重。防范方法以上问题的解决方法有很多种,比较常见的有:将输入中的单引号变成双引号使用存储过程认真对表单输入进行校验,从查询变量中滤去尽可能多的可疑字符使用编程技巧密码保护与验证Web网站中,很多系统中都涉及到存储用户密码。怎样将密码储存到数据库中?如果密码能够以明文形式被看到,很明显,一旦攻击者取得了管理员权限,或者攻击者本身就是管理员,就可以看到用户密码。因此,密码保护显得非常重要密码保护

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论