ORACLE第5-7章 习题参考答案.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5章 数据查询操作 【填空题】 1.WHERE,HAVING 2.SUM 3.% 4.UNION,MINUS 【选择题】 1.C 2.A 3.D 4.A 5.A 6.B 【简答题】 1.什么是SQL注入式攻击?如何防范SQL注入式攻击? (1) SQL注入技术定义 SQL注入(SQL Injection)技术在国外最早出现在1999年,我国在2002年后开始大量出现,目前没有对SQL注入技术的标准定义,微软中国技术中心从2个方面进行了描述: (1)脚本注入式的攻击 (2)恶意用户输入用来影响被执行的SQL脚本 Chris Anley将SQL注入定义为,攻击者通过在查询操作中插入一系列的SQL语句到应用程序中来操作数据。Stephen Kost给出了SQL注入的一个特征,“从一个数据库获得未经授权的访问和直接检索”。利用SQL注入技术来实施网络攻击常称为SQL注入攻击,其本质是利用Web应用程序中所输入的SQL语句的语法处理,针对的是Web应用程序开发者编程过程中未对SQL语句传入的参数做出严格的检查和处理所造成的。习惯上将存在SQL注入点的程序或者网站称为SQL注入漏洞。实际上,SQL注入是存在于有数据库连接的应用程序中的一种漏洞,攻击者通过在应用程序中预先定义好的查询语句结尾加上额外的SQL语句元素,欺骗数据库服务器执行非授权的查询。这类应用程序一般是基于Web的应用程序,它允许用户输入查询条件,并将查询条件嵌入SQL请求语句中,发送到与该应用程序相关联的数据库服务器中去执行。通过构造一些畸形的输入,攻击者能够操作这种请求语句去获取预先未知的结果。 (2) 一般的SQL注入攻击防范方法 SQL注入攻击防范方法目前已经有很多,总结起来有下面一些: 在服务端正式处理之前对提交数据的合法性进行检查; 封装客户端提交信息; 替换或删除敏感字符/字符串; 屏蔽出错信息。 不要用字串连接建立SQL查询,而使用SQL变量,因为变量不是可以执行的脚本; 目录最小化权限设置,给静态网页目录和动态网页目录分别设置不同权限,尽量不给写目录权限; 修改或者去掉Web服务器上默认的一些危险命令,例如ftp、cmd、wscript等,需要时再复制到相应目录; 数据敏感信息非常规加密,通过在程序中对口令等敏感信息加密都是采用md5函数进行加密,即密文=md5(明文),本文推荐在原来的加密的基础上增加一些非常规的方式,即在md5加密的基础上附带一些值,如密文=md5(md5(明文)+123456); 2.请举例说明外连接的3种类型及其用法。 外连接其实就是查两张表 左连接就是左边的表全有值,右边表的值可以为空(+); 右连接是左边表值可以为空(+),右边表的值全有;全连接是左连接和右连接的并集;内连接是左连接和右连接的交集。 (1)左外连接(left outer join) select e.last_name, e.department_id, d.department_name from employees e left outer join departments d on (e.department_id = d.department_id); 等价于 select e.last_name, e.department_id, d.department_name from employees e, departments d where e.department_id=d.department_id(+); 结果为:所有员工及对应部门的记录,包括没有对应部门编号department_id的员工记录。 (2)右外连接(right outer join ) select e.last_name, e.department_id, d.department_name from employees e right outer join departments d on (e.department_id = d.department_id); 等价于 select e.last_name, e.department_id, d.department_name from employees e, departments d where e.department_id(+)=d.department_id; 结果为:所有员工及对应部门的记录,包括没有任何员工的部门记录。 3.全连接(full outer join) select e.last_name, e.department_id, d.department_name from

文档评论(0)

82393aa + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档