- 1、本文档共34页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SQL注入
精品文档
精品文档
收集于网络,如有侵权请联系管理员删除
收集于网络,如有侵权请联系管理员删除
精品文档
收集于网络,如有侵权请联系管理员删除
第1章
本章目标
本章目标
理解Web应用的工作原理
理解SQL注入
理解SQL注入的产生过程
1.1 概述
很多人声称自己了解SQL注入,但他们听说或经历的情况都是比较常见的。SQL注入是影响企业运营且最具破坏性的漏洞之一,它会泄露保存在应用程序数据库中的敏感信息,包括用户名、口令、姓名、地址、电话号码以及信用卡明细等易被利用的信息。
那么,应该怎样来准确定义SQL注入呢?SQL注入(SQL Injection)是这样一种漏洞:应用程序在向后台数据库传递SQL(Structured Query Language,结构化查询语言)查询时,如果为攻击者提供了影响该查询的能力,则会引发SQL注入。攻击者通过影响传递给数据库的内容来修改SQL自身的语法和功能,并且会影响SQL所支持数据库和操作系统的功能和灵活性。SQL注入不只是一种会影响Web应用的漏洞;对于任何从不可信源获取输入的代码来说,如果使用了该输入来构造动态SQL语句,那么就很可能也会受到攻击(例如,客户端/服务器架构中的“胖客户端”程序)。
自SQL数据库开始连接至Web应用起,SQL注入就可能已经存在。Rain Forest Puppy因首次发现它(或至少将其引入了公众的视野)而备受赞誉。1998年圣诞节,Rain Forest Puppy为Phrack(/issues.html?issue=54id=8#article)(一本由黑客创办且面向黑客的电子杂志)撰写了一篇名为“NT Web Technology Vulnerabilities(NT Web技术漏洞)”的文章。2000年早期,Rain Forest Puppy还发布了一篇关于SQL注入的报告(“How I hacked PacketStorm”,位于/rfp/txt/rfp2k01.txt),其中详述了如何使用SQL注入来破坏一个当时很流行的Web站点。自此,许多研究人员开始研究并细化利用SQL注入进行攻击的技术。但时至今日,仍有许多开发人员和安全专家对SQL注入不甚了解。
本章将介绍SQL注入的成因。首先概述Web应用通用的构建方式,为理解SQL注入的产生过程提供一些背景知识。接下来从Web应用的代码层介绍引发SQL注入的因素以及哪些开发实践和行为会引发SQL注入。
1.2 理解Web应用的工作原理
大多数人在日常生活中都会用到Web应用。有时是作为假期生活的一部分,有时是为了访问E-mail、预定假期、从在线商店购买商品或是查看感兴趣的新闻消息等。Web应用的形式有很多种。
不管是用何种语言编写的Web应用,有一点是相同的:它们都具有交互性并且多半是数据库驱动的。在互联网中,数据库驱动的Web应用非常普遍。它们通常都包含一个后台数据库和很多Web页面,这些页面中包含了使用某种编程语言编写的服务器端脚本,而这些脚本则能够根据Web页面与用户的交互从数据库中提取特定的信息。电子商务是数据库驱动的Web应用的最常见形式之一。电子商务应用的很多信息,如产品信息、库存水平、价格、邮资、包装成本等均保存在数据库中。如果读者曾经从电子零售商那里在线购买过商品和产品,那么应该不会对这种类型的应用感到陌生。数据库驱动的Web应用通常包含三层:表示层(Web浏览器或呈现引擎)、逻辑层(如C#、ASP、.NET、PHP、JSP等编程语言)和存储层(如Microsoft SQL Server、MySQL、Oracle等数据库)。Web浏览器(表示层,如Internet Explorer、Safari、Firefox等)向中间层(逻辑层)发送请求,中间层通过查询、更新数据库(存储层)来响应该请求。
下面看一个在线零售商店的例子。该在线商店提供了一个有哪些信誉好的足球投注网站表单,顾客可以按特定的兴趣对商品进行过滤、分类。另外,它还提供了对所显示商品作进一步筛选的选项,以满足顾客在经济上的预算需求。可以使用下列URL查看商店中所有价格低于$100的商品:
/products.php?val=100
下列PHP脚本说明了如何将用户输入(val)传递给动态创建的SQL语句。当请求上述URL时,将会执行下列PHP代码段:
// connect to the database
$conn = mysql_connect(localhost,username,password);
// dynamically build the sql statement with the input
$query = SELECT * FROM Products WHERE Price $_GET[v
您可能关注的文档
最近下载
- 农民工工资支付计划.pdf VIP
- 市政验·绿-4 种植穴、槽的挖掘工程检验批质量验收记录.pdf VIP
- DB53∕T 67.3-2017 建筑消防安全检测评价 第3部分:灭火设施.pdf
- ISO14000环境管理体系练习题.pdf VIP
- 产品质量保证承诺书15篇.pdf VIP
- 2025(部编版)语文九年级上册 第二单元 复习课件.pptx
- 一级建造师工程经济讲义.pdf VIP
- 关于成都市数字化金融创新服务的研究.pdf VIP
- 2023年02月安徽合肥市教育局直属事业单位选调工作人员笔试参考题库+答案详解.docx VIP
- 《单位消防安全管理 第2部分:建筑消防设置维护》 DB53T 270.2-2017.pdf VIP
文档评论(0)