php 如何进行环境隔离

2016-10-05 22:17:01 +08:00
 just1

我的博客是 wordpress ,总是担心放在日常服务器不安全,因为 php 可以访问其他的 777 权限目录, 777 目录在有的地方难免有,有没有办法解决这个问题,让 php 只能在自己这个目录执行。

2818 次点击
所在节点    问与答
34 条回复
ovear
2016-10-05 22:18:52 +08:00
open_basedir
kungfuchicken
2016-10-05 22:22:33 +08:00
上 docker
just1
2016-10-05 22:26:23 +08:00
@ovear 如果有多个 vhost , open_basedir 应该也没用吧(跨站)
just1
2016-10-05 22:26:39 +08:00
@kungfuchicken docker 不持久化啊,而且不方便
kungfuchicken
2016-10-05 22:28:01 +08:00
@just1 docker 可以挂载 host 的目录啊....挂载后 docker 里面访问不到 host 的其他目录
just1
2016-10-05 22:29:06 +08:00
@kungfuchicken 好麻烦 TAT ,虽然确实是一个方法
ovear
2016-10-05 22:35:01 +08:00
@just1 对每个 vhost 指定不同 open_basedir 就好
jybox
2016-10-05 22:40:35 +08:00
难道不是应该考虑为什么有 777 的目录么
just1
2016-10-05 23:01:21 +08:00
@ovear OK ,多谢
just1
2016-10-05 23:02:37 +08:00
@jybox 因为方便又想要安全(∩_∩)
imlonghao673
2016-10-05 23:09:57 +08:00
@just1 安全???.jpg
msg7086
2016-10-05 23:12:32 +08:00
除了 /tmp 之类的地方以外想不到什么地方是应该用 777 的。
ryd994
2016-10-05 23:21:14 +08:00
1docker
2chroot
3 所有地方都不应该 777 ,以及 777 的都是可以公开的
4chroot 设置起来更麻烦,最后还是 docker 方便
lhbc
2016-10-05 23:23:53 +08:00
我想知道为什么“ 777 目录在有的地方难免有”
我们都恨不得上 SELinux+ACL ,居然还有人给 777 目录
shiji
2016-10-05 23:57:55 +08:00
open_basedir 是很有用的,但是你得动手试一试,不能大嘴一撇随口一说。因为这里面是有坑的 : ) 要记得把 /tmp 也写进去, linux 系统用冒号分隔多个目录,对于早期 PHP 版本,目录后面加不加斜杠也是有讲究的

关于文件权限:
我自己的配置一般是 项目里面的文件夹 770 , 文件 640 (这个配置不适用于 CLI 模式)
owner 是 root 或者你自己的账户, group 是 www-data
DesignerSkyline
2016-10-06 00:02:10 +08:00
如果 WP 暂时需要更新升级,这个时候肯定是需要 777 的,需要的时候改一下,不需要的时候把权限给改回来就行。
ivmm
2016-10-06 00:03:51 +08:00
chown -R $user /dir
tabris17
2016-10-06 00:05:58 +08:00
open_basedir 只防 fopen ,能读写文件的方法多了去了
shiji
2016-10-06 03:04:19 +08:00
@tabris17 举个近代版本(>=5.6)的例子?/或者发个链接?我想了解一下
cxbig
2016-10-06 05:27:35 +08:00
1. 环境隔离可以用 docker
2. 777 是最糟糕的权限方式,你倒不如研究下如何避免使用它

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

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

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

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

© 2021 V2EX