SQL概述及在网络安全中的应用

2016-01-29 16:37 9 1 收藏

SQL概述及在网络安全中的应用,SQL概述及在网络安全中的应用

【 tulaoshi.com - SQLServer 】

 

  1.网络应用和SQL注射

  1.1概述

  有些网络数据库没有过滤客户提供的数据中可能有害的字符,SQL注射就是利用插入有害字符进行攻击的技术。尽管非常容易防范,但因特网上仍然有惊人数量的存储系统容易受到这种攻击。这篇文章的目的是指导专业安全组织了解这种技术,并告诉他们正确的,用来防范SQL注射的办法,以及处理各种常见的,由于非法输入引起的问题.

  1.2背景

  在读这篇文章之前,你应该对数据库如何工作,以及SQL如何被用来访问数据库有一些基础的了解。我建议您阅读eXtropia.com的文章“Introduction to Databases for WebDevelopers”。

  (网址:http://www.extropia.com/tutorials/sql/toc.html)

  1.3字符编码

  在大多数的网络浏览器中,标点符号和许多其它符号在用于一个网络请求前需要把URL编码,以便被适当地编译(interpret)。在本文中的例子和截图中我使用了固定的ASCII字符以保证最大的可读性。然而,在实际应用中,你需要在HTTP请求中用%25来代替百分号(%),用%2B来代替加号(+)等等。

  1.网络应用和SQL注射

  1.1概述

  有些网络数据库没有过滤客户提供的数据中可能有害的字符,SQL注射就是利用插入有害字符进行攻击的技术。尽管非常容易防范,但因特网上仍然有惊人数量的存储系统容易受到这种攻击。这篇文章的目的是指导专业安全组织了解这种技术,并告诉他们正确的,用来防范SQL注射的办法,以及处理各种常见的,由于非法输入引起的问题.

  1.2背景

  在读这篇文章之前,你应该对数据库如何工作,以及SQL如何被用来访问数据库有一些基础的了解。我建议您阅读eXtropia.com的文章“Introduction to Databases for WebDevelopers”。

  (网址:http://www.extropia.com/tutorials/sql/toc.html)

  1.3字符编码

  在大多数的网络浏览器中,标点符号和许多其它符号在用于一个网络请求前需要把URL编码,以便被适当地编译(interpret)。在本文中的例子和截图中我使用了固定的ASCII字符以保证最大的可读性。然而,在实际应用中,你需要在HTTP请求中用%25来代替百分号(%),用%2B来代替加号(+)等等。。。

  1.网络应用和SQL注射

  1.1概述

  有些网络数据库没有过滤客户提供的数据中可能有害的字符,SQL注射就是利用插入有害字符进行攻击的技术。尽管非常容易防范,但因特网上仍然有惊人数量的存储系统容易受到这种攻击。这篇文章的目的是指导专业安全组织了解这种技术,并告诉他们正确的,用来防范SQL注射的办法,以及处理各种常见的,由于非法输入引起的问题.

  1.2背景

  在读这篇文章之前,你应该对数据库如何工作,以及SQL如何被用来访问数据库有一些基础的了解。我建议您阅读eXtropia.com的文章“Introduction to Databases for WebDevelopers”。

  (网址:http://www.extropia.com/tutorials/sql/toc.html)

  1.3字符编码

  在大多数的网络浏览器中,标点符号和许多其它符号在用于一个网络请求前需要把URL编码,以便被适当地编译(interpret)。在本文中的例子和截图中我使用了固定的ASCII字符以保证最大的可读性。然而,在实际应用中,你需要在HTTP请求中用%25来代替百分号(%),用%2B来代替加号(+)等等。。。

  3.2.5 LIKE语句查询

  另一个大的灾难是陷入一个LIKE子句的陷阱.(Seeing the LIKE keyword or percent signs cited in an error message are indications of this situation.)大多数的web搜索程序使用LIKE子句来查询数据库,比如下面这个:

  SQLString = "SELECT FirstName, LastName, Title FROM Employees WHERE LastName LIKE '%" & strLastNameSearch & "%'"

  这里面的%是通配符,在这个例子里,WHERE子句会返回TRUE,只要LASTNAME里有字符串含有strLastNameSearch.为了阻止SQL SERVER返回预计中的记录,你构造的SQL语句里必须含有LASTNAME里没有的字符串.web搜索程序搜索的字符串来自于用户的输入.通常有一个'和一个%在输入的字符串之前,因此我们构造字符串时,需要在WHERE子句中匹配它们.如果你提交了NULL作为搜索字符串,那么LIKE的参数会变成"%%",这是一个全匹配,会返回所有的记录.

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/sqlserver/)


  3.2.6 “死胡同”

  大部分的时候sql injection都要伴随着大量失败的实践,如果你发现你无论如何都不能插入相关的语句,并且无论你怎么做都不对,这个时候你就要判断自己是否掉进了一个死胡同,很多时候遇到这种情况你很可能是在一个多重嵌套的WHERE和SELECT子句的语句中,或者一些更加复杂的多重嵌套,连使用“;--”都没有用,所以自己要小心和避免在这种地方停留。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/sqlserver/)

3.2.7 列的数目不匹配问题

  如图所示,我们可以从几次错误中得到很多有用的信息,并且加以调整自己的请求语句,这种信息多了,那就意味着我们离成功不远了。在猜列名时,如图所示,我们提交语句后会碰

来源:http://www.tulaoshi.com/n/20160129/1499118.html

延伸阅读
标签: Web开发
是不是常常面对一长串的网址而感到厌烦呢?是否常常遇到一些网站的网址又长又难记的呢?是不是经常在玩twitter这类的micro-blog或者到一些论坛、讨论区,甚至只是BBS想要发表文章同时带上一个网址连接时,发现网址太长或者恰好这个域名被封锁了,因而无法发表呢? 遇到这些情况,许多人一定会立刻想到web2.0以来所出现的许多专门提供网址...
标签: MySQL mysql数据库
随着网络的普及,基于网络的应用也越来越多。网络 数据库 就是其中之一。通过一台或几台服务器可以为很多客户提供服务,这种方式给人们带来了很多方便,但也给不法分子造成了可乘之机。由于数据都是通过网络传输的,这就可以在传输的过程中被截获,或者通过非常手段进入数据库。由于以上原因,数据库安全就显得十分重要。因此,本文就以上问题讨...
目前的局域网基本上都采用以广播为技术基础的以太网,任何两个节点之间的通信数据包,不仅为这两个节点的网卡所接收,也同时为处在同一以太网上的任何一个节点的网卡所截取。因此,黑客只要接入以太网上的任一节点进行侦听,就可以捕获发生在这个以太网上的所有数据包,对其进行解包分析,从而窃取关键信息,这就是以太网所固有的安...
  关于用户资源 对你的系统上所有的用户设置资源限制可以防止DoS类型攻击,如最大进程数,内存数量等。例如,对所有用户的限制, 编辑/etc/security/limits.con加入以下几行: * hard core 0 * hard rss 5000 * hard nproc 20 你也必须编辑/etc/pam.d/login文件,检查这一行的存在: session requir...
标签: 电脑入门
(1)主要网络安全威胁 网络系统的可靠运转是基于通信子网、计算机硬件和操作系统及各种应用软件等各方面、各层次的良好运行。因此,它的风险将来自对企业的各个关键点可能造成的威胁,这些威胁可能造成总体功能的失效。由于在这种广域网分布式计算环境中,相对于过去的局域网、主机环境、单机环境,安全问题变得越来越复杂和突出,所以网络安全...

经验教程

710

收藏

17
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部