SQL注入

SQL注入(SQL injection),是应用程序在数据库层的安全漏洞,
简而言之,在输入的字符串(web表单,输入域名或页面请求)中注入SQL语句,程序未设置对字符串的检测,而导致数据库服务器将该字符串认为是正确的SQL语句执行,对数据库进行入侵。

原因:
1、应用程序以字符串联结的方式组合SQL语句。
2、应用程序连接数据库时使用了权限过大的账号
3、过分信任用户的输入,未限制输入字符数,未对用户输入的数据进行命令的潜在检测。
(用户的输入 的用途是什么,账号,密码 对数据库的访问。)

原理:
1、SQL命令可查询,添加,删除,更新等操作,命令的串接,以分号作为不同命令的区别

2、SQL命令中对于传入的字符串参数用单引号括起来

3、SQL命令可以注入注解

4、组合SQL命令字符串,未针对单引号进行替换,会导致该字符串被填入命令时,受到修改
StrSQL = "SELECT * FROM users WHERE(name = '"+ username +"') and (pw = '"+ password +"');"

username = "1' OR '1' = '1"

password = "1' OR '1' = '1"
这里是java的语法。

sql注入技术

1.强制产生错误
2.采用非主流通道技术
3.使用特殊的字符
4.使用特殊的字符
5.使用条件语句
6.利用存储过程
7.避开输入过滤技术
8.判断技术

sql注入的防范

1.使用参数化的过滤性语句

2.输入验证

3.错误消息处理

4.加密处理

5.存储过程来执行所有的查询

注入式攻击的原理就是程序命令与用户输入没有泾渭分明
注入攻击前的三件事
1.确认web应用程序所使用的技术
2.确认所有可能的输入方式
3.查找可以用于注射的用户输入

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值