为什么参数化SQL查询可以php防止sql注入入

参数化查询为什么能够防止SQL注入
&很多人都知道,也知道SQL参数化查询可以防止,可为什么能防止注入却并不是很多人都知道的。
本文主要讲述的是这个问题,也许你在部分文章中看到过这块内容,当然了看看也无妨。
首先:我们要了解SQL收到一个指令后所做的事情:
具体细节可以查看文章:Sql Server 编译、重编译与执行计划重用原理
在这里,我简单的表示为:&收到指令 -& 编译SQL生成执行计划 -&选择执行计划 -&执行执行计划。
具体可能有点不一样,但大致的步骤如上所示。
接着我们来分析为什么拼接SQL 字符串会导致的风险呢?
首先创建一张表Users:
CREATE&TABLE&[dbo].[Users]( &&[Id]&[uniqueidentifier]&NOT&NULL, &&[UserId]&[int]&NOT&NULL, &&[UserName]&[varchar](50)&NULL, &&[Password]&[varchar](50)&NOT&NULL, &&&CONSTRAINT&[PK_Users]&PRIMARY&KEY&CLUSTERED& &&( &&[Id]&ASC&&)WITH&(PAD_INDEX&&=&OFF,&STATISTICS_NORECOMPUTE&&=&OFF,&IGNORE_DUP_KEY&=&OFF,&ALLOW_ROW_LOCKS&&=&ON,&ALLOW_PAGE_LOCKS&&=&ON)&ON&[PRIMARY] &&)&ON&[PRIMARY]&
插入一些数据:
INSERT&INTO&[Test].[dbo].[Users]([Id],[UserId],[UserName],[Password])VALUES&(NEWID(),1,'name1','pwd1'); &INSERT&INTO&[Test].[dbo].[Users]([Id],[UserId],[UserName],[Password])VALUES&(NEWID(),2,'name2','pwd2'); &INSERT&INTO&[Test].[dbo].[Users]([Id],[UserId],[UserName],[Password])VALUES&(NEWID(),3,'name3','pwd3'); &INSERT&INTO&[Test].[dbo].[Users]([Id],[UserId],[UserName],[Password])VALUES&(NEWID(),4,'name4','pwd4'); &INSERT&INTO&[Test].[dbo].[Users]([Id],[UserId],[UserName],[Password])VALUES&(NEWID(),5,'name5','pwd5');&
假设我们有个用户登录的页面,代码如下:
验证用户登录的sql 如下:
select&COUNT(*)&from&Users&where&Password&=&'a'&and&UserName&=&'b'&&
这段代码返回Password 和UserName都匹配的用户数量,如果大于1的话,那么就代表用户存在。
本文不讨论SQL 中的密码策略,也不讨论代码规范,主要是讲为什么能够防止[1]&&&&&&
【声明】:黑吧安全网()登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱,我们会在最短的时间内进行处理。
上一篇:【】【】参数化查询为什么能够防止SQL注入_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
参数化查询为什么能够防止SQL注入
上传于|0|0|暂无简介
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩6页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢&使用参数化查询防止SQL注入漏洞
秒后自动跳转到登录页
(奖励5下载豆)
快捷登录:
举报类型:
不规范:上传重复资源
不规范:标题与实际内容不符
不规范:资源无法下载或使用
其他不规范行为
违规:资源涉及侵权
违规:含有危害国家安全等内容
违规:含有反动/色情等内容
违规:广告内容
详细原因:
任何违反下载中心规定的资源,欢迎Down友监督举报,第一举报人可获5-10下载豆奖励。
视频课程推荐
使用参数化查询防止SQL注入漏洞
上传时间:
技术分类:
资源评价:
(2位用户参与评价)
已被下载&23&次
SQL注入漏洞曾经是Web应用程序的噩梦,CMS、BBS、Blog无一不曾受其害。
本资料共包含以下附件:
使用参数化查询防止SQL注入漏洞.doc
51CTO下载中心常见问题:
1.如何获得下载豆?
1)上传资料
2)评论资料
3)每天在首页签到领取
4)购买VIP会员服务,无需下载豆下载资源
5)更多途径:点击此处
2.如何删除自己的资料?
下载资料意味着您已同意遵守以下协议:
1.资料的所有权益归上传用户所有
2.未经权益所有人同意,不得将资料中的内容挪作商业或盈利用途
3.51CTO下载中心仅提供资料交流平台,并不对任何资料负责
4.本站资料中如有侵权或不适当内容,请邮件与我们联系()
5.本站不保证资源的准确性、安全性和完整性, 同时也不承担用户因使用这些资料对自己和他人造成任何形式的伤害或损失
下载1252次
下载1406次
下载1226次
下载1216次
下载1788次
下载1160次
相关专题推荐
PHP是在服务器端执行的嵌入HTML文档的
本教程循序渐进,由浅及深;具有完整
PHP是一种HTML内嵌式的语言,是一种在
本专题为XML视频教程,共20集,视频格
ExtJS是一种主要用于创建前端用户界面
您想不想设计出漂亮美观的网页?这专
本视频教程有针对性的讲解Ajax技术如
本专题包含了Java Web开发必须的各种
JSP技术使用Java编程语言编写类XML的
本专题为UML实战操作视频教程,讲解了
小甲鱼版delphi视频学习,从入门到精
主要讲述springMVC启用注解功能,还有
这是韩顺平老师最新版的jsp视频教程
韩顺平.第二版XML视频教程.共21讲,本
Flex 是一个高效、免费的开源框架,可
ERP是英文Enterprise Resource Plann
意见或建议:
联系方式:
您已提交成功!感谢您的宝贵意见,我们会尽快处理防SQL注入 生成参数化的通用分页查询语句_asp.net开发_ThinkSAAS
防SQL注入 生成参数化的通用分页查询语句
防SQL注入 生成参数化的通用分页查询语句
内容来源: 网络
PHP开发框架
开发工具/编程工具
服务器环境
ThinkSAAS商业授权:
ThinkSAAS为用户提供有偿个性定制开发服务
ThinkSAAS将为商业授权用户提供二次开发指导和技术支持
让ThinkSAAS更好,把建议拿来。
开发客服微信

我要回帖

更多关于 如何防止sql注入 的文章

 

随机推荐