docker 上面跑 PHP 真的不安全么???

2017-04-19 10:05:12 +08:00
 lianxiaoyi

最近竞争对手被人脱裤了。。应该是论坛 discuz 直接访问了数据库造成的。。。作为一家没有专业运维的 phper ,老大就发话了,要保证安全。。。现在做了以下几点

1.使用的阿里云的 rds ,数据库只能内网访问,只要服务器不被攻破,那数据库还是很难进

2.所有上传文件均不留在自己服务器,都是放在阿里 oss

3.缓存服务器也不在本机,都是有另外服务器支撑

4.ssh 默认 22 端口已经改掉了

现在正在研究 docker ,以为把运行环境放到 docker 中会更安全,因为你嗅探的数据全是虚拟机的数据,无法对真实机器文件做嗅探,所以应该拿不到密码文件,但是刚看到

https://www.v2ex.com/t/355724#reply38

这篇底下评论 docker 并不安全,瞬间就方了。。。不知道有没有必要更换 docker ,还有哪些地方需要注意呢?

同样回复都会花铜币感谢,希望各位大神指教一二。。。。。。。

3797 次点击
所在节点    问与答
23 条回复
jarlyyn
2017-04-19 10:10:25 +08:00
并不更安全
lianxiaoyi
2017-04-19 10:11:48 +08:00
@jarlyyn 大神能仔细解答一下么???非常感谢。。。。
gdtv
2017-04-19 10:11:52 +08:00
我搭车问一下, openbase_dir 有多安全?会不会被攻破,从而访问到网站目录外的文件?
ovear
2017-04-19 10:15:03 +08:00
没差呀。。你 discuz 被干了,就可以拿到数据库的账号密码,就可以连。。
docker 是方便部署用的

@gdtv 百度好多方法绕过
ss098
2017-04-19 10:15:49 +08:00
他这句话并不正确。

Docker 确实能隔离环境,但是并不是你需要的那种“安全”。
gouchaoer
2017-04-19 10:16:57 +08:00
你服务器上跑了 N 个 php 应用就一定要用不同的 docker 容器跑, docker 是很好的方案
数据库内网访问没用,你 php 应用有漏洞还是可以拉你的库啊,然后 2/3/4 只是降低一些风险,意义不算大

你竞争对手是因为把 discuz 和主业务放一起被人从 discuz 下手搞了的吧

害怕被脱裤最主要的是害怕用户表被拖了,你可以把用户表分离出来,用不同的数据库存,然后 php 登录的地方用 rpc 调用另一个专门负责登录的 php 应用。。。基本上就这样了,没了。。。。
lianxiaoyi
2017-04-19 10:17:14 +08:00
@gdtv 欢迎上车。。。。。吓得我赶紧百度了一下什么是 openbase_dir
gouchaoer
2017-04-19 10:20:57 +08:00
openbase_dir 根本就没用,还有啥 user_dir 啥的,这些策略 php 官方也慢慢持消息态度的
lianxiaoyi
2017-04-19 10:21:30 +08:00
@ovear 我已经把 discuz 单独搞了一个服务器,买了阿里云的安骑士收费版,也为它单独买了一个 rds ,它的用户信息也和我原有业务不相同。。。。。可谓是下了血本。。。。。。
lianxiaoyi
2017-04-19 10:24:25 +08:00
@gouchaoer 应该是从 discuz 下手的。。。我已经把 discuz 完全甩出去了。。。。啊哈哈 。。。。看来要想安全真够麻烦的 。。。。。
ovear
2017-04-19 10:25:04 +08:00
@lianxiaoyi 没用啊。。逻辑是:
你 Discuz 可以用->Discuz 服务器可以访问数据库->如果是 Discuz 有洞洞->Discuz 服务器被淦->通过 Discuz 服务器脱裤
问题在 Discuz 身上呀。。。
血本下错地方了。。血本应该放在对 Discuz 进行代码审计,还有做所有好日志
lianxiaoyi
2017-04-19 10:31:07 +08:00
@ovear 我们的 discuz 不是很重要,只是一些资料放里面用户可以找到。。。。一天访问量也不到 2000 。。而且它现在也不访问我主业务的数据库。。。。已经用两个 rds 隔开了。。。。。相当于给 discuz 完全平移出去了,跟我主业务没半毛钱关系了。。。我现在只要我主业务代码审计做好就行了。。。不过我好久没看手底下人代码了。。。。囧。。。。。
yongzhong
2017-04-19 10:33:04 +08:00
docker 的侧重在于通过 image 方式进行部署,只关注应用,基础镜像会删掉很多不必要的软件,而不是像虚拟机一样让你 ssh 上去自己倒腾

docker 用 namespace,cgroups 帮你完成命名空间到 CPU 等资源的隔离

你的标题是一个伪命题,没有什么是绝对安全的
lianxiaoyi
2017-04-19 10:33:16 +08:00
我现在服务器还有 exec 函数权限。。。。醉了 。。。。打算开始用 python 写这部分 exec 内容。。。。。。。
sagaxu
2017-04-19 10:33:17 +08:00
用了 docker 会增加那么一点点安全性,起码隔离性好了,但是也无法完全杜绝。再好的运维,也没法阻止猪队友的垃圾代码产生的漏洞。
lianxiaoyi
2017-04-19 10:35:24 +08:00
@yongzhong 好吧。。。使用 docker 平移生产环境镜像确实比较容易。。。。。。。是我想多了。。。。。
thankuu
2017-04-19 10:35:44 +08:00
这个锅 docker 不背,明明是 discuz 的锅
lianxiaoyi
2017-04-19 10:36:59 +08:00
@sagaxu 我也是这么想的。。能有一点点隔离性也是好的。。。增加了一点点难度。。。多个小难度就会集结成大难度。。。。。。应该能防一部分人。。。。
lianxiaoyi
2017-04-19 10:37:55 +08:00
@thankuu 哥。。我没说是 docker 的锅。。。。我是想问上 docker 后会不会更安全。。。。。。 discuz 我已经完全甩出去了。。。。
grayon
2017-04-19 10:44:45 +08:00
docker 是可以做数据隔离,但是不会增加 php 的安全性, php 被攻陷的话, php 能访问到的资源都会暴露
docker 本身没什么安全问题,但是 docker 有个远程管理问题可以直接拿到主服务器的 root 权限

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/355802

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX