一、SQL注入简介
SQL 注入攻击是通过将恶意的SQL查询或添加语句插入到应用的输入参数中,再在后台SQL服务器上解析执行进行的攻击,它目前黑客对数据库进行攻击的最常用手段之一。
二、Web 程序三层架构
三层架构(
3-tier architecture
) 通常意义上就是将整个业务应用划分为:
界面层(User Interface layer)
业务逻辑层(Business Logic Layer)
数据访问层(Data access layer)
区分层次的目的即为了“高内聚低耦合”的思想。在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构被应用于众多类型的软件开发。
2.2、数据库 Web三层架构
由于数据库驱动的Web应用程序依从三层架构的思想也分为三层:
表示层。
业务逻辑层(又称领域层)
数据访问层(又称存储层)
三、SQL注入漏洞详解
3.2SQL注入产生的原因及威胁:
刚刚讲过当我们访问动态网页时, Web 服务器会向数据访问层发起SQL查询请求,如果权限验证通过就会执行SQL语句。
这种网站内部直接发送的Sql请求一般不会有危险,但实际情况是很多时候需要结合用户的输入数据动态构造SQL语句,如果用户输入的数据被构造成恶意SQL代码,Web 应用又未对动态构造的 SQL语句使用的参数进行审查,则会带来意想不到的危险。
SQL注入带来的威胁主要有以下几点:
- 猜解后台数据库,这是利用最多的方式,盗取网站的敏感信息。
- 绕过认证,列如绕过验证登录网站后台。
- 注入可以借助数据库的