【MySQL精通之路】安全(1)-安全指南

任何在连接到Internet的计算机上使用MySQL的人都应该阅读本节,以避免最常见的安全错误。

在讨论安全性时,有必要考虑充分保护整个服务器主机(而不仅仅是MySQL服务器)免受所有类型的适用攻击:窃听、更改、播放和拒绝服务。我们在这里没有涵盖可用性和容错的所有方面。

MySQL对用户可以尝试执行的所有连接、查询和其他操作使用基于访问控制列表(ACL)的安全性。

MySQL客户端和服务器之间还支持SSL加密连接

这里讨论的许多概念根本不是MySQL特有的;相同的一般思想适用于几乎所有的应用程序

运行MySQL时,请遵循以下准则:

永远不要让任何人(MySQL根帐户除外)访问MySQL系统数据库中的用户表!这一点至关重要。

了解MySQL访问权限系统的工作原理(请参阅“访问控制和帐户管理”)。

使用GRANT和REVOKE语句来控制对MySQL的访问。

不要授予超过必要权限的权限。

从不向所有主机授予特权。

清单:

试试mysql-u root。如果您能够在不需要密码的情况下成功连接到服务器,任何人都可以作为MySQL根用户以完全权限连接到您的MySQL服务器!查看MySQL的安装说明,特别注意有关设置根密码的信息。请参阅“保护初始MySQL帐户”。

使用SHOW GRANTS语句检查哪些帐户可以访问什么。然后使用REVOKE语句删除那些不必要的特权。

不要在数据库中存储明文密码。如果你的电脑遭到破坏,入侵者可以获取完整的密码列表并使用它们。相反,使用SHA2()或其他单向哈希函数并存储哈希值。

为了防止使用彩虹表恢复密码,请不要在普通密码上使用这些功能;相反,选择一些字符串用作salt,并使用hash(hash(password)+salt)值


假设所有密码都将使用已知密码列表进行自动破解,并使用有关您的公开信息(如社交媒体帖子)进行有针对性的猜测。

不要选择由容易破解或猜测的项目组成的密码,如字典单词、正确名称、运动队名称、首字母缩写或常见短语,尤其是与您相关的密码。

如果以可预测的方式使用大写字母、数字替换和添加以及特殊字符,则这些都没有帮助。此外,不要选择您在任何地方看到的用作示例的任何密码,或其变体,即使它是作为强密码的示例出现的。

相反,请选择尽可能长且不可预测的密码。这并不意味着组合需要是一个难以记忆和复制的随机字符串,尽管这是一个很好的方法,例如,如果你有密码管理软件,可以生成和填充这些密码并安全存储。

包含多个单词的密码短语易于创建、记忆和复制,并且比由单个修改的单词或可预测的字符序列组成的典型用户选择的密码安全得多。要创建安全的密码短语,请确保其中的单词和其他项目不是已知的短语或引号,不会以可预测的顺序出现,并且最好彼此之间没有以前的关系。


建立防火墙。这可以保护您免受任何软件中至少50%的所有类型的漏洞攻击。将MySQL放在防火墙后面或非军事区(DMZ)中。

尝试使用nmap等工具从Internet扫描端口。

MySQL默认使用端口3306。不应从不受信任的主机访问此端口。作为检查MySQL端口是否打开的一种简单方法,请在某台远程计算机上尝试以下命令,其中server_host是运行MySQL服务器的主机的主机名或IP地址:

$> telnet server_host 3306

如果telnet挂起或连接被拒绝,端口将被阻止,这就是OK的。

如果你得到一个连接和一些垃圾字符,端口是打开的,应该在防火墙或路由器上关闭,除非你真的有充分的理由保持它打开。


访问MySQL的应用程序不应该信任用户输入的任何数据,并且应该使用适当的防御编程技术来编写。

参见“客户端编程安全指南”。


不要在互联网上传输纯(未加密)数据。

每个有时间和能力拦截这些信息并将其用于自己的目的的人都可以访问这些信息。

相反,请使用加密协议,如SSL或SSH。MySQL支持内部SSL连接。

另一种技术是使用SSH端口转发来创建用于通信的加密(和压缩)隧道


学习使用tcpdump和字符串实用程序。在大多数情况下,您可以通过发出如下命令来检查MySQL数据流是否未加密:

$> tcpdump -l -i eth0 -w - src or dst port 3306 | strings

这在Linux下可以工作,在其他系统下应该可以进行小的修改。

警告:
如果您没有看到明文数据,这并不总是意味着信息实际上是加密的。如果您需要高度安全性,请咨询安全专家。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/18224.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

kafkastream

kafkastream的介绍: Kafka Streams是一个开源的流处理库,用于构建实时数据流应用程序和微服务。它是Apache Kafka项目的一部分,是一种基于事件驱动的流处理解决方案。 Kafka Streams提供了高级别的API,使开发人员能够以简单和声…

什么情况下JVM内存中的一个对象会被垃圾回收?

什么情况下JVM内存中的一个对象会被垃圾回收? 1、什么时候会触发垃圾回收?2、被哪些变量引用的对象是不能回收的?3、Java中对象不同的引用类型4、finalize()方法的作用1、什么时候会触发垃圾回收? 平时我们系统运行创建的对象都是优先分配在新生代里的,如图: 然后如果…

【Oracle】PL SQL 怎么重新编译无效的对象

1.打开PL SQL ,点击图中有红色的 2.点击齿轮按钮即可 from:【Oracle】PL SQL 怎么重新编译无效的对象_plsql编译无效对象的按钮在哪里-CSDN博客

redis查看一个key占用了多少内存

Redis 本身并没有直接提供一个命令来查看一个特定的 key 占用了多少内存。但是,你可以通过一些间接的方法来估算这个值。 以下是一些建议的方法: 使用 DEBUG OBJECT 命令: 虽然这不是一个官方推荐或稳定的命令,但在某些 Redis …

最新php项目加密源码

压缩包里有多少个php就会被加密多少个PHP、php无需安装任何插件。源码全开源 如果上传的压缩包里有子文件夹(子文件夹里的php文件也会被加密),加密后的压缩包需要先修复一下,步骤:打开压缩包 》 工具 》 修复压缩文件…

AIGC 010-CLIP第一个文本和图像对齐的大模型!

AIGC 010-CLIP第一个文本和图像对齐的大模型! 文章目录 0 论文工作1 论文方法2 效果 0 论文工作 不客气的说CLIP和扩散模型的成功让计算式视觉领域几乎所有工作都重新做了一遍。 CLIP(对比语言-图像预训练)论文提出了一种新的对比学习方法&a…

28-ESP32-S3 lwIP 轻量级 TCP/IP 协议栈

ESP32-S3 lwIP 介绍 ESP32-S3 是一款集成了Wi-Fi 和蓝牙功能的微控制器。它的设计初衷是为了方便嵌入式系统的开发。不过你可能会好奇,ESP32-S3 怎么实现与外部网络的通信呢?这里就要提到一个开源的 TCP/IP 协议栈,它叫做lwIP(轻…

博客系统多模块开发

创建工程 创建父工程 删除src目录&#xff0c;在pom.xml添加依赖&#xff1a; <!--统一版本 字符编码--><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><project.b…

使用 Flask 和 Vue.js 构建 Web 应用

文章目录 入门1. 设置 Flask 后端2. 设置 Vue.js 前端 将 Flask 与 Vue.js 集成1. 配置 Flask 来提供 Vue.js 文件2. 构建 Vue.js 组件3. 运行应用程序 结论 在现代 Web 开发中&#xff0c;创建动态和响应式的应用通常涉及将后端框架如 Flask 与前端库如 Vue.js 结合起来。这种…

职责链设计模式

职责链设计模式&#xff08;Chain of Responsibility Design Pattern&#xff09;是一种行为设计模式&#xff0c;使多个对象都有机会处理请求&#xff0c;从而避免请求的发送者和接收者之间的耦合。这些对象被链接成一条链&#xff0c;沿着这条链传递请求&#xff0c;直到有一…

2024年5月20日 (周一) 叶子游戏新闻

报告老板&#xff0c;现在就加班&#xff01;《职场浮生记》抢先体验版现已上线今天由LeiYun Games开发&#xff0c;2P Games发行的《职场浮生记》正式在Steam平台推出抢先体验版。玩家将跟随主角的步伐踏入一个最为真实的职场环境之中&#xff0c;在生活与工作之间找寻平衡&am…

数据库多表查询

多表查询&#xff1a; SELECT *FROM stu_table,class WHERE stu_table.c_idclass.c_id; 多表查询——内连接 查询两张表交集部分。 隐式内连接&#xff1a; #查询学生姓名&#xff0c;和班级名称&#xff0c;隐式调用 SELECT stu_table.s_name,class.c_name FROM stu_table…

Linux管理文本文件002

今天简单和大家分享一些管理文本文件的指令 1、查看文件类型 file 1&#xff09;file /etc/passwd 文本文件 2&#xff09;File /dev/sda 块设备&#xff08;磁盘&#xff09; 3&#xff09;File /dev/tty 字符设备&#xff08;鼠标&#xff09; 4&#xff09;File /usr/…

力扣hot100学习记录(七)

240. 搜索二维矩阵 II 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性&#xff1a; 每行的元素从左到右升序排列。 每列的元素从上到下升序排列。 题意 在二维矩阵中搜索是否存在一个目标值&#xff0c;该矩阵每一行每一列都是升序…

谷歌推出TransformerFAM架构,以更低的消耗处理长序列文本

Transformer对大模型界的影响力不言而喻&#xff0c;ChatGPT、Sora、Stable Difusion等知名模型皆使用了该架构。 但有一个很明显的缺点&#xff0c;其注意力复杂度的二次方增长在处理书籍、PDF等超长文档时会显著增加算力负担。 虽然会通过滑动窗口注意力和稀疏注意力等技术…

行为型设计模式之观察者模式

文章目录 简介定义例子 原理代码例子小结 简介 定义 还是先来个定义吧&#xff0c;如下&#xff1a; 观察者模式(observer pattern)的原始定义是&#xff1a;定义对象之间的一对多依赖关系&#xff0c;这样当一个对象改变状态时&#xff0c;它的所有依赖项都会自动得到通知和…

亚马逊云科技峰会福利来啦

2024 亚马逊云科技中国峰会&#xff0c;挑战俱乐部 Hands On 动手实验课程正在直播中&#xff0c;点击链接畅享生成式AI建构之旅&#xff0c;赢心动好礼 &#xff08;直播链接Link&#xff09; 只看不过瘾&#xff1f;别急&#xff01;我们为您准备了【生成式AI助手 Amazon Q 初…

mybatis一对一,一对多,字段重复

1、一对一&#xff0c;association和javaType <resultMap type"com.example.ProdTask" id"ProdTaskMapWithDInvChkTask"><result property"taskCateg" column"ProdTask_CATEG" jdbcType"VARCHAR"/><result p…

手机视频恢复2个技巧:让您的视频资料重现生机

我们经常使用手机拍摄和保存各种视频资料&#xff0c;包括工作记录和日常生活的记忆。但有时候&#xff0c;由于误删、格式化或存储空间不足&#xff0c;我们会选择清理手机空间&#xff0c;这些视频资料可能会因此消失不见。今天&#xff0c;我们将为您揭秘手机视频恢复的技巧…

前端-TS代码解读—索引签名:type Recordable<T = any> = { [x: string]: T;}

在TypeScript中&#xff0c;这段代码定义了一个类型别名 Recordable&#xff0c;它使用了索引签名&#xff08;index signature&#xff09;来表示一个可记录&#xff08;record-like&#xff09;对象。这个类型别名是泛型的&#xff0c;这意味着它可以用于创建具有任意类型属性…