陈老师:1415968548 郑老师:2735197625 乐老师:354331153
客服热线:
19941464235/19906632509(微信同号)

客服微信

MySQL的安全隐患

作者:云贝学院
发布时间:2024-01-15 17:35
浏览量:763

作者:胖墩老师


众所周知啊,当多个用户同时访问MySQL服务器时,尤其是这些用户是通过互联网进行访问。不仅MySQL服务器处于危险之中,还有可能危及整个服务器主机。
看到此处肯定有不了解其中原因的同学会问,怎么就处于危险之中了?且听我细细道来。
因为这些用户当中,不乏一些所谓的“正常用户”进行以下几种类型的安全攻击:
  • 1.窃听

  • 2.改变

  • 3.回放

  • 4.拒绝服务

其实MySQL的安全隐患不止这些,在我们安装MySQL的时候,也存在安全风险。
以下是最常见的安装过程中的安全风险:
1. 网络块:因为MySQL服务器允许客户端通过网络连接并发出请求。所以如果密码和网络流量没有加密,网络监控软件轻易的可以看到客户端帐户信息和数据。因此任何没有密码的账户都容易受到攻击。
2. 操作系统块:服务器上的额外用户帐户都可能会破坏MySQL的安装。因为他们有权限去这样做(怎么去理解,就是额外用户可以阻止安装或者破坏MySQL)。
3. 文件系统块:服务器上的目录、数据库文件和日志文件可以由不应该具有访问权限的用户打开
么问题来了,我们要怎么去避免或者解决这些存在的安全隐患呢?

我们先从网络安全讲起。
在公共网络环境下如何保护MySQL呢?首先我们要了解MySQL使用了客户机/服务器模型,并提供了固有的面向网络的服务。网络客户端首先连接到MySQL服务器。如果MySQL与使用MySQL的面向internet的应用程序运行在同一台机器上。为了安全,那就禁用网络,并且只允许套接字(socket)连接。当MySQL响应来自网络端口的请求,客户端可以访问这些端口。但MySQL服务器主机不能直接连接Internet。必须使用防火墙(或在非武装地区设置的多个防火墙)[DMZ]),防止未授权的客户端连接。如下:

图片

传输逻辑


防范网络风险,可以采取以下措施。
1. 使用防火墙控制对MySQL端口的访问。
2. 考虑限制服务器使用的网络接口。
3. 使用安全安装脚本创建一个安全的初始配置:mysql_secure_installation
4. 确保MySQL帐户有密码保护,没有不必要的特权。
5. 坚持一般的特权预防措施。不授予超出用户要求的权限。
6. 确保只有授权的客户端才能连接到服务器以访问其数据库。
7. 不通过网络传输未加密的数据
上是防范网络风险,在自家私有网络下也需要注意。


如果MySQL服务器端口对私有网络中的所有用户都可见,则可能会受到直接或间接的攻击。例如:来自心怀不满的员工或窥探者的直接攻击。或者是来自外部代理的间接攻击,这些代理使用钓鱼攻击或木马程序控制员工主机。
范比如有些有能力拦截未加密数据的用户可以访问到这些数据。则可以被网络监控工具查看同一网段上的流量,因此必须使用加密协议(如SSL或SSH)对客户端和服务器之间的通信进行加密