首页 > 代码库 > [安全相关]SQL注入
[安全相关]SQL注入
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_lvlFROM jobsWHERE 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=‘1‘or 1=(select count(*) from job) --
(3)
如何防止SQL入住?
(1)使用正则表达式过滤 单引号,减号等敏感字符
(2)不能拼接SQL语句,使用参数化SQL或者使用存储过程
在使用参数化查询的情况下,数据库服务器不会将参数的内容视为SQL指令的一部份来处理,而是在数据库完成SQL指令的编译后,才套用参数运行,因此就算参数中含有指令,也不会被数据库运行。Access、SQL Server、MySQL、SQLite等常用数据库都支持参数化查询。存储过程同理。
(3)不要使用管理员权限运行SQL,每种操作规定有限的权限
(4)敏感信息不能明文存储
(5)不要给出原生SQL错误提示,会泄露数据库信息,自定义错误提示
[安全相关]SQL注入
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。