码迷,mamicode.com
首页 > 数据库 > 详细

[安全相关]SQL注入

时间:2014-11-06 23:27:26      阅读:339      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   http   color   os   使用   sp   数据   

SQL注入常用方式

(1) or 1=1

利用or使where的条件无效,从而绕过where验证:

http://localhost:3452/ExcelUsingXSLT/Default.aspx?jobid=1‘or‘1‘=‘1

等效SQL语句如下:

SELECT     job_id, job_desc, min_lvl, max_lvl
FROM         jobs
WHERE     job_id = 1 OR 1 = 1

 

(2) --

利用--注释原SQL语句,并插入新语句

http://localhost:3452/ExcelUsingXSLT/Default.aspx?jobid=1‘or 1=(select count(*) from job)--

使用--注释掉后面的SQL,并利用常量1=()执行自定义SQL

SELECT       job_id, job_desc, min_lvl, max_lvl 
FROM         jobs 
WHERE      job_id=1or 1=(select count(*) from job) --

 

(3)

 

如何防止SQL入住?

(1)使用正则表达式过滤 单引号,减号等敏感字符

(2)不能拼接SQL语句,使用参数化SQL或者使用存储过程

  在使用参数化查询的情况下,数据库服务器不会将参数的内容视为SQL指令的一部份来处理,而是在数据库完成SQL指令的编译后,才套用参数运行,因此就算参数中含有指令,也不会被数据库运行。Access、SQL Server、MySQL、SQLite等常用数据库都支持参数化查询。存储过程同理。

(3)不要使用管理员权限运行SQL,每种操作规定有限的权限

(4)敏感信息不能明文存储

(5)不要给出原生SQL错误提示,会泄露数据库信息,自定义错误提示

 

[安全相关]SQL注入

标签:des   style   blog   http   color   os   使用   sp   数据   

原文地址:http://www.cnblogs.com/iyjhabc/p/4080123.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!