前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >四十六、什么是SQL注入

四十六、什么是SQL注入

作者头像
喵叔
发布2021-07-13 11:04:30
3600
发布2021-07-13 11:04:30
举报
文章被收录于专栏:喵叔's 专栏喵叔's 专栏
一、什么是 SQL 注入

SQL 注入是指应用程序对用户输入数据的合法性没有判断、没有过滤,攻击者可以在应用程序中通过表单提交特殊的字符串,该特殊字符串会改变 SQL 的运行结果,从而在管理员毫不知情的情况下实现非法操作,以此来实现欺骗数据库执行非授权的任意查询。 SQL 注入的特点如下:

  1. 广泛性:任何一个基于 SQL 语言的数据库都可能收到 SQL 注入攻击。之所以广泛性是因为很多程序员不对表单提交的参数进行校验,也不进行参数化传参。
  2. 隐蔽性:SQL 注入语句大部分都嵌套在普通的 HTTP 请求中,很难与正常语句区分开, SQL 注入的变种也很多。
  3. 操作简单:网上 SQL 注入相关的工具很多,几乎任何一个人都可以进行 SQL 注入操作。
  4. 危害大:攻击者通过 SQL 注入能够获得更多的数据,例如管理员密码、个人隐私数据等等。
二、如何进行 SQL 注入

例如,有 user 表,字段包含 username 和 password 列。我们要通过查询传入的数据来判断使用可以登录:

代码语言:javascript
复制
select * from user where username='admin' and password='00000';

如果攻击者将页面上的 password 输入框的内容输入为如下文本:

代码语言:javascript
复制
' or '1'=1'

那么组成的 SQL 语句将变为:

代码语言:javascript
复制
select * from user where username='admin' and password='' or '1'='1';

这样就形成了一个不管是否存在username 都能正常登录的 SQL 语句。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-07-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、什么是 SQL 注入
  • 二、如何进行 SQL 注入
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档