我有时候传代码会把 jdbc.properties 传上去。。。你们都是怎么做的呢
1
KingEngine 2018-11-15 10:10:19 +08:00 1
既然发现了问题,为什么不首先想到改密码?而是在 v2 发个帖?
|
2
xianxiaobo OP @KingEngine 改密码肯定会啊,只是很好奇这种问题能造成多大的伤害,以及大家都是怎么做的。
|
3
find456789 2018-11-15 10:18:51 +08:00 1
mysql 设置白名单 ip, 只允许 服务器 ip 访问, 这样安全性就会提升很多
, 如果你 mysql 谁都可以链接, 然后密码还暴露了, 人家拿到密码,你的所有数据都暴露无遗了 |
4
GoLand 2018-11-15 10:19:33 +08:00 2
你的 MySQL 是外网也能访问吗......通常这种服务基础服务都是只有集群内网才能访问啊。
|
5
cat9life 2018-11-15 10:20:54 +08:00 1
没有 block 外网访问的话肯定死翘翘啊,或者正好你们内网早就被人入侵过但是苦于无法提权,你这正还给了一个突破口。
|
6
markgor 2018-11-15 10:21:00 +08:00 4
那要看 mysql 的权限,还有 mysql 账户的权限
如果 mysql 是用 root 运行的,然后 mysql 账号也有 load_file 或 outfile 的话,那基本都能入侵你服务器 |
7
xianxiaobo OP @GoLand 个人服务器,刚开始学 java,mysql
|
8
xianxiaobo OP @markgor 懂了,谢谢大佬
|
9
markgor 2018-11-15 10:25:06 +08:00
正常做法:
mysql 创建独立的系统账号,严格控制权限体系,根据业务需求对指定的文件给予读写或只读权限。 mysql 内部的账号也做好权限划分,只给予业务所需的功能权限。 通过设定白名单,只允许本地访问或指定的 ip 链接(业务机器 ip 和堡垒机 ip )进行访问 mysql 整台机禁止外网连接 增加数据审核功能( mysql 有相关的插件,不过性能一般) 上面做法也是等保要求 3 级的做法 |
10
gaius 2018-11-15 10:26:02 +08:00
不要传服务器配置文件到公网
|
11
MaxLv 2018-11-15 10:30:21 +08:00 via iPhone
看权限 能写文件的话就直接写 shell 了
|
12
fumichael 2018-11-15 10:36:03 +08:00
我前不久也想过这个问题,参照下面链接
https://www.v2ex.com/t/74245 |
13
passerbytiny 2018-11-15 10:37:13 +08:00
|
14
ClutchBear 2018-11-15 10:37:36 +08:00
设置禁止远程登录就是了.
只允许内网 ip 登录 |
15
zhuawadao 2018-11-15 10:37:52 +08:00
拔网线啊
|
16
markgor 2018-11-15 10:42:21 +08:00
|
17
msg7086 2018-11-15 10:44:42 +08:00
有很多情况需要检查。比如,
你 MySQL 监听外网了吗。 你 MySQL 运行在 root 上了吗。 你泄露的账号密码是全球都可以登录的吗。 你防火墙开了吗。 等等,各种。不同的设置造成的后果严重性也各不相同。 |
18
SimonFu 2018-11-15 10:52:51 +08:00
上一家公司运维为了省事儿,
服务器 mysql 直接暴露公网, 而且还是 root 用户可以直接访问, 密码用的 enpass 随机生成的 32 位字符串不知可不可行。。。。 (针对业务系统,还是做了数据库用户的权限区分限制的,localhost 访问。) |
19
nutting 2018-11-15 11:17:24 +08:00
微软的 sql server 可以,上大学时候机房默认装着,弱密码,可以用工具装木马
|
20
sonyxperia 2018-11-15 11:19:25 +08:00
那相当于把服务器地址也暴露了吧,如果数据库和 tomcat 在同一台机子
|
21
LichMscy 2018-11-15 11:30:05 +08:00
1. docker run -e 传入密码
2. 用 jasypt 加密数据库密码 |
22
xuextx 2018-11-15 12:00:30 +08:00 2
LZ 大概想知道的是,知道了 MYSQL,是否能入侵到整台服务器里面把
|
23
opengps 2018-11-15 12:10:20 +08:00
不专门研究,真的不敢相信入侵方法多种多样,能达到什么样的入侵效果往往是弱点组合起来的。所以不用多想,各方面努力加强防护吧
|
24
licoycn 2018-11-15 12:11:44 +08:00
禁止远程访问 只可以本地访问拿到了也没有用 除非侵入了你的服务器
|
26
tedzhou1221 2018-11-15 14:00:39 +08:00 via Android
之前是用连接池工具 druid,带有解密功能。
所以 jdbc.properties 里面的数据库密码信息是密文 |
28
xpresslink 2018-11-15 14:06:55 +08:00
应用和 mysql 跑在同一台服务器时候我都是直接用 unix socket 连接,把所有端口都关闭。
|
29
dko 2018-11-15 14:36:16 +08:00
只开 localhost,不要用 root,配个 user 就好了
虽然 user 也可以提权,不过尽可能注意就好了。 |
30
martinsu 2018-11-15 15:20:26 +08:00
华住酒店数据库泄露了解一下
|
31
shellj 2018-11-15 15:30:13 +08:00
把账号密码这些东西写在环境变量里
|
33
CoderEQ 2018-11-15 16:21:35 +08:00
你在路上捡到一把钥匙,你能偷到这把钥匙主人家的东西吗
|
34
aaaaasam 2018-11-15 17:05:49 +08:00
有访问授权控制的,如果你的 mysql 给的是 'root'@'1.1.1.1'就算你有密码,那也只能 1.1.1.1 这个地址去登录
|
35
CasualYours 2018-11-15 17:35:03 +08:00
mysql 权限过高是很容易侵入服务器的,mysql 的 system 命令可以执行服务器指令。
|
36
ihuotui 2018-11-15 20:41:52 +08:00 via iPhone
应用配置分离
|
37
largecat 2018-11-15 22:01:49 +08:00 via Android
只是写普通文章,传个配置文件不含服务器 ip 地址,拿到密码也不知道服务器在哪里吧
|
38
pythonCoder 2018-11-16 09:06:08 +08:00 1
如果按照题目要求“能够入侵我的服务器吗?”,各位都跑题了;
1.如果没做 WEB、DB 的分离(应用和数据部署在不同的服务器),并且泄漏了 mysql 的 root 账户,你的服务器非常容易被入侵,这里的入侵是拿到 webshell ; 2.除了 1.这种情况,其它的最多也就是数据被查看、删除和修改,对服务器没什么任何影响。 |