站长百科 | 数字化技能提升教程 数字化时代生存宝典
首页
数字化百科
电子书
建站程序
开发
服务器
办公软件
开发教程
服务器教程
软件使用教程
运营教程
热门电子书
WordPress教程
宝塔面板教程
CSS教程
Shopify教程
导航
程序频道
推广频道
网赚频道
人物频道
网站程序
网页制作
云计算
服务器
CMS
论坛
网店
虚拟主机
cPanel
网址导航
WIKI使用导航
WIKI首页
最新资讯
网站程序
站长人物
页面分类
使用帮助
编辑测试
创建条目
网站地图
站长百科导航
站长百科
主机侦探
IDCtalk云说
跨境电商导航
WordPress啦
站长专题
网站推广
网站程序
网站赚钱
虚拟主机
cPanel
网址导航专题
云计算
微博营销
虚拟主机管理系统
开放平台
WIKI程序与应用
美国十大主机
编辑“
SQL注入
”
人物百科
|
营销百科
|
网赚百科
|
站长工具
|
网站程序
|
域名主机
|
互联网公司
|
分类索引
跳转至:
导航
、
搜索
警告:
您没有登录。如果您做出任意编辑,您的IP地址将会公开可见。如果您
登录
或
创建
一个账户,您的编辑将归属于您的用户名,且将享受其他好处。
反垃圾检查。
不要
加入这个!
'''SQL注入'''([[SQL注入攻击]])就是通过把[[SQL]]命令插入到[[Web]][[表单]]递交或输入[[域名]]或页面请求的查询[[字符串]],最终达到欺骗[[服务器]]执行恶意的SQL命令,比如先前的很多影视[[网站]]泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击. ==简介== SQL注入攻击是[[黑客]]对[[数据库]]进行攻击的常用手段之一。随着B/S模式应用开发的发展,使用这种模式编写[[应用程序]]的[[程序员]]也越来越多。但是由于程序员的水平及经验也参差不齐,相当大一部分程序员在编写[[代码]]的时候,没有对用户输入[[数据]]的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据[[程序]]返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。 ==SQL注入攻击== 当应用程序使用输入内容来构造动态sql语句以访问数据库时,会发生sql注入攻击。如果代码使用存储过程,而这些存储过程作为包含未筛选的用户输入的字符串来传递,也会发生sql注入。sql注入可能导致攻击者使用应用程序登陆在数据库中执行命令。相关的SQL注入可以通过测试工具pangolin进行。如果应用程序使用特权过高的帐户连接到数据库,这种问题会变得很严重。在某些表单中,用户输入的内容直接用来构造动态sql命令,或者作为存储过程的输入参数,这些表单特别容易受到sql注入的攻击。而许多网站程序在编写时,没有对用户输入的合法性进行判断或者程序中本身的变量处理不当,使应用程序存在安全隐患。这样,用户就可以提交一段数据库查询的代码,根据程序返回的结果,获得一些敏感的信息或者控制整个服务器,于是sql注入就发生了。 ==SQL注入原理== *SQL命令可查询、插入、更新、删除等,命令的串接。而以分号字符为不同命令的区别。(原本的作用是用于SubQuery或作为查询、插入、更新、删除……等的条件式) *SQL命令对于传入的字串参数是用单引号字符所包起来。但连续2个单引号字符,在[[SQL]][[数据库]]中,则视为字串中的一个单引号字符。 *SQL命令中,可以注入注解连续2个减号字符——后的文字为注解,或“/*”与“*/”所包起来的文字为注解 *如果在组合SQL的命令字串时,未针对单引号字符作取代处理的话,将导致该字符变量在填入命令字串时,被恶意窜改原本的[[SQL]][[语法]]的作用 ==SQL注入影响== *资料表中的资料外泄,例如个人机密资料,帐户资料,密码等。 *[[数据结构]]被[[黑客]]探知,得以做进一步攻击(例如SELECT * FROM sys.tables)。 *数据库[[服务器]]被攻击,[[系统]][[管理员]]帐户被窜改(例如ALTER LOGIN sa WITH PASSWORD='xxxxxx')。 *取得系统较高权限后,有可能得以在[[网页]]加入恶意连结以及[[XSS]]。 *经由数据库服务器提供的[[操作系统]]支援,让黑客得以修改或控制操作系统(例如xp_cmdshell "net stop iisadmin"可停止服务器的[[IIS]]服务)。 *破坏[[硬盘]]资料,瘫痪全[[系统]](例如[[xp]]_cmdshell "FORMAT [[C]]:")。 ==SQL注入防范== *在构造动态SQL语句时,一定要使用类安全(type-safe)的参数加码机制。大多数的[[数据]][[API]],包括ADO和ADO. NET,有这样的支持,允许你指定所提供的参数的确切类型(譬如,字符串,整数,日期等),可以保证这些参数被恰当地escaped/encoded了,来避免黑客利用它们。一定要从始到终地使用这些特性。 *建立一个正式的安全过程,做更新时,对所有的[[编码]]做审评。 *不要把敏感性数据在数据库里以明文存放。 *确认编写了自动化的单元测试,来特别校验你的数据访问层和应用程序不受SQL注入攻击。 *锁定数据库的安全,只给访问数据库的[[web]]应用功能所需的最低的权限。 *从网上[[下载]][[SQL]]通用防注入系统的程序,在需要防范注入的页面头部用 来防止别人进行手动注入测试。 ==相关词条== *[[病毒]] *[[木马]] *[[计算机病毒]] *[[钓鱼攻击]] *[[蠕虫病毒]] *[[恶意代码]] *[[DDoS]] *[[Smurf]] ==参考来源== *http://baike.baidu.com/view/983303.htm#3 *http://baike.baidu.com/view/3896.htm *http://zh.wikipedia.org/wiki/SQL%E6%B3%A8%E5%85%A5 [[category:网络安全|S]] [[category:计算机技术|S]]
摘要:
请注意,您对站长百科的所有贡献都可能被其他贡献者编辑,修改或删除。如果您不希望您的文字被任意修改和再散布,请不要提交。
您同时也要向我们保证您所提交的内容是您自己所作,或得自一个不受版权保护或相似自由的来源(参阅
Wordpress-mediawiki:版权
的细节)。
未经许可,请勿提交受版权保护的作品!
取消
编辑帮助
(在新窗口中打开)