docker 上面跑 PHP 真的不安全么??? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lianxiaoyi
V2EX    问与答

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

  •  
  •   lianxiaoyi 2017 年 4 月 19 日 4281 次点击
    这是一个创建于 3198 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

    t/355724#reply38

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

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

    23 条回复    2017-04-19 16:50:30 +08:00
    jarlyyn
        1
    jarlyyn  
       2017 年 4 月 19 日 via Android   1
    并不更安全
    lianxiaoyi
        2
    lianxiaoyi  
    OP
       2017 年 4 月 19 日
    @jarlyyn 大神能仔细解答一下么???非常感谢。。。。
    gdtv
        3
    gdtv  
       2017 年 4 月 19 日 via Android   2
    我搭车问一下, openbase_dir 有多安全?会不会被攻破,从而访问到网站目录外的文件?
    ovear
        4
    ovear  
       2017 年 4 月 19 日   1
    没差呀。。你 discuz 被干了,就可以拿到数据库的账号密码,就可以连。。
    docker 是方便部署用的

    @gdtv 百度好多方法绕过
    ss098
        5
    ss098  
       2017 年 4 月 19 日   1
    他这句话并不正确。

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

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

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

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

    你的标题是一个伪命题,没有什么是绝对安全的
    lianxiaoyi
        14
    lianxiaoyi  
    OP
       2017 年 4 月 19 日
    我现在服务器还有 exec 函数权限。。。。醉了 。。。。打算开始用 python 写这部分 exec 内容。。。。。。。
    sagaxu
        15
    sagaxu  
       2017 年 4 月 19 日   1
    用了 docker 会增加那么一点点安全性,起码隔离性好了,但是也无法完全杜绝。再好的运维,也没法阻止猪队友的垃圾代码产生的漏洞。
    lianxiaoyi
        16
    lianxiaoyi  
    OP
       2017 年 4 月 19 日
    @yongzhong 好吧。。。使用 docker 平移生产环境镜像确实比较容易。。。。。。。是我想多了。。。。。
    thankuu
        17
    thankuu  
       2017 年 4 月 19 日   1
    这个锅 docker 不背,明明是 discuz 的锅
    lianxiaoyi
        18
    lianxiaoyi  
    OP
       2017 年 4 月 19 日
    @sagaxu 我也是这么想的。。能有一点点隔离性也是好的。。。增加了一点点难度。。。多个小难度就会集结成大难度。。。。。。应该能防一部分人。。。。
    lianxiaoyi
        19
    lianxiaoyi  
    OP
       2017 年 4 月 19 日
    @thankuu 哥。。我没说是 docker 的锅。。。。我是想问上 docker 后会不会更安全。。。。。。 discuz 我已经完全甩出去了。。。。
    grayon
        20
    grayon  
       2017 年 4 月 19 日   1
    docker 是可以做数据隔离,但是不会增加 php 的安全性, php 被攻陷的话, php 能访问到的资源都会暴露
    docker 本身没什么安全问题,但是 docker 有个远程管理问题可以直接拿到主服务器的 root 权限
    lianxiaoyi
        21
    lianxiaoyi  
    OP
       2017 年 4 月 19 日
    @grayon 我想过对 php 代码进行加密。。。但是因为项目太大。。测试起来比较复杂。。。。所以不敢上加密。。。。。。。。。
    Felldeadbird
        22
    Felldeadbird  
       2017 年 4 月 19 日   1
    要先知道攻击点在何处。 discuz 注入、 XSS 都可能会引起连锁问题。
    用 docker 可以隔离多个 PHP 应用。这样 discuz 被注入了,也就是 discuz 当前隔离区被提权。那么接下来就是考验黑客是否需要对 docker 挖掘漏洞提取。。。。
    你 PHP 加密作用也不大,源码基于 discuz 而来,该有的 0day 漏洞,一样会有。你加密和不加密实际上根本没帮助。
    另外,安全这事情嘛,别交给开发了!既然都有对手来干你们,就安心地去聘请安全人员吧。
    Ouyangan
        23
    Ouyangan  
       2017 年 4 月 19 日
    docker 跟安全有什么关系...
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     958 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 22:27 PVG 06:27 LAX 14:27 JFK 17:27
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86