千家信息网

MySQL数据库的安全讲义

发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,本文主要给大家介绍MySQL数据库的安全讲义,希望可以给大家补充和更新些知识,如有其它问题需要了解的可以持续在行业资讯里面关注我的更新文章的。其实数据库安全就那点事,SQL注入。现代Web数据安全方面
千家信息网最后更新 2024年09月22日MySQL数据库的安全讲义

本文主要给大家介绍MySQL数据库的安全讲义,希望可以给大家补充和更新些知识,如有其它问题需要了解的可以持续在行业资讯里面关注我的更新文章的。

其实数据库安全就那点事,SQL注入。现代Web数据安全方面,相当一部分公司其实并不重视数据安全的问题,据国外统计超过一半的网站可能存在SQL注入漏洞。
就说最近的例子,2016年11月30日某某著名公司发送短信邀请本人参加云产品峰会,收到邀请的二维码短信的url,这个url的IP地址就是管理后台就不说了(大家应该知道是谁了,看完本文***他人网站的,自负责任)。在用户名输入框中直接输入 or 1=1 ,连密码都不需要输入,超级管理员验证通过,直达管理员后台。
话说,SQL注入漏洞这个事,能怪谁呢?
能怪整天整宿忙碌于擦屁屁的运维吗?能怪搞数据库的DBA吗?
严格地说,他们都有责任搞好安全这点事。不过,说到本质,还真与他们没有什么关系。
有时候,程序在输入框做好可疑字符过滤,甚至就多加一点逻辑判断,安全就能完全避免的事。但是他们为什么就不做这个检查呢,是人安全意识问题,还是对SQL注入不了解呢?
SQL注入漏洞的本质原因并不是在运维工作层面有多大的疏忽,而是程序员没有做好过滤和逻辑上的问题。为什么?

我们先要明确SQL漏洞***是怎么定义?SQL漏洞***,本质上就是如何充分利用程序的逻辑来为***者完成他们想干的事情。
所以,***们能不能搞,是程序的问题,程序能不被***们当做傻子,叫它干什么事,它就干什么事,甚至有个洞就能干出点东西来。
这才是SQL注入漏洞的利用本质。比如,某些会议门票之类的,捣蛋鬼想要票还不要钱,甚至还想倒卖门票,想登录管理员后台,怎么搞?
这明显非法,大家都不是傻子,这并不是你想登就能登的,对不对?但是总得找出个"傻子"出现才行,而捣蛋鬼又从来不按常规出牌。我们又如何防范这种捣蛋鬼呢?
就登录网站这回事吧,都要输入用户名和密码进行验证,大家皆知的常识。假设这里就只有两个输入框:用户名和密码,那如何绕过这种验证呢?
那我们就先看看绕过用户名和密码验证的原理是什么?当我们输入用户名:hxf,密码是:123,程序会保存到变量中, $uname='hxf',$pass='123'.这时候点击登录,就会把用户名和密码数据提交给程序.
那么被当作傻子的程序是如何进行逻辑判断的呢?我们看看类似如下的过程:
首先执行一个SQL语句,比如sql="selectcount(*) from users where uname=$uname and password=$pass",意思是这是从数据库中查有这个用户名和密码的用户是否存在,然后程序就会根据返回结果进行逻辑判断,如果用户名和密码都匹配,那么返回的结果必然不可能为空,如果不为空,那么就登录通过。
我们咋一看这个判断过程好像也没有什么问题。那我们来看捣蛋是怎么捣蛋的?
直接在用户名的输入框输入:1' or 1='1';# ,密码输入框不需要填写任何字符,直接回车。这样直接验证通过,到达管理员后台,轻松获得web管理员权限,当然还有其它效果一样的输入。
为什么这样可以得到Web管理员权限呢?我们来把动作分解一下。
当捣蛋鬼在用户名输入框输入:1' or 1='1';#,那么传到程序处理加单引号后变成:$uname="'1' or 1='1'",$pass="",这种结果传到SQL语句在数据库中执行就会是这样:select count(*) from userswhere uname='1' or 1='1';# and password="",大家可以执行在一下,这条结果明显把逻辑改变了,结果不可能为空,or的逻辑永远为真,结果不可能为空。非空即为真,管理员登录成功,尤其是表中只有一个管理员的情况更糟糕了。

那么如何防范这种事情呢?这里的输入验证存在很多的漏洞:多个输入框都没有验证是否有输入和有效字符检查。所以防范的办法,一方面是做字符过滤,类似的单引号和SQL关键字等是禁止输入的。当然两个输入框是否输入字符,输入多少个字符,就不应该我来教育程序员了。
综上所述,SQL注入漏洞的本质原因实际上是我们的程序问题,归根结底仍然是人的意识问题,也因此仍然有多很网站存在诸多SQL注入漏洞问题。大多数程序员,运维和DBA其实并不了解其中的注入内幕是什么,MySQL注入***技术内幕》是以实际SQL注入***为例,如何步步为营掌握SQL注入***,如何针对***实行反制,做好安全的防御。实际上,并非有意教大家***他人网站,而是如何防范自己网站不被他人***。刀是利器,坏人可以做坏事,好人可以防身不给坏人靠近之机。

看了以上关于MySQL数据库的安全讲义,希望能给大家在实际运用中带来一定的帮助。本文由于篇幅有限,难免会有不足和需要补充的地方,如有需要更加专业的解答,可在官网联系我们的24小时售前售后,随时帮您解答问题的。

输入 程序 问题 安全 数据 密码 漏洞 管理 管理员 用户 逻辑 验证 数据库 字符 用户名 结果 网站 本质 登录 傻子 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 mc服务器300人多少钱 吉林电信dns服务器虚拟主机 服务器安全与终端安全 缓存和数据库没有同步 重大网络安全风险包括那些 网络安全基础法最新消息 浪潮 软件开发平台 服务器系统和普通的区别 关系型数据库表与表之间 软件开发需求团队输出物 10万并发需要多少个数据库 电竞酒店无盘服务器能不能跑代码 交通局网络安全工作方案 用友国标数据库 大话西游2经典版火爆服务器 新洲网络安全大检查 网络技术 人的想法可以知道 校园网络安全宣传知识心得 怎么在网站中增加数据库检索 浪潮服务器默认管理口ip 临沂云网网络技术有限公司 网络安全需要学linux吗 网络安全被破坏导致 数据库关系代数期末 深圳安盛办公网络技术有限公司 杭州盘丝洞网络技术有限公司 家园育红小学网络安全 国土资源一张图核心数据库 linux下查看数据库 君亿网络技术服务中心
0