我的博客是 wordpress ,总是担心放在日常服务器不安全,因为 php 可以访问其他的 777 权限目录, 777 目录在有的地方难免有,有没有办法解决这个问题,让 php 只能在自己这个目录执行。
1
ovear 2016-10-05 22:18:52 +08:00 1
open_basedir
|
2
kungfuchicken 2016-10-05 22:22:33 +08:00 1
上 docker
|
4
just1 OP @kungfuchicken docker 不持久化啊,而且不方便
|
5
kungfuchicken 2016-10-05 22:28:01 +08:00
@just1 docker 可以挂载 host 的目录啊....挂载后 docker 里面访问不到 host 的其他目录
|
6
just1 OP @kungfuchicken 好麻烦 TAT ,虽然确实是一个方法
|
8
jybox 2016-10-05 22:40:35 +08:00
难道不是应该考虑为什么有 777 的目录么
|
11
imlonghao673 2016-10-05 23:09:57 +08:00 via Android
@just1 安全???.jpg
|
12
msg7086 2016-10-05 23:12:32 +08:00
除了 /tmp 之类的地方以外想不到什么地方是应该用 777 的。
|
13
ryd994 2016-10-05 23:21:14 +08:00 via Android 1
1docker
2chroot 3 所有地方都不应该 777 ,以及 777 的都是可以公开的 4chroot 设置起来更麻烦,最后还是 docker 方便 |
14
lhbc 2016-10-05 23:23:53 +08:00
我想知道为什么“ 777 目录在有的地方难免有”
我们都恨不得上 SELinux+ACL ,居然还有人给 777 目录 |
15
shiji 2016-10-05 23:57:55 +08:00
open_basedir 是很有用的,但是你得动手试一试,不能大嘴一撇随口一说。因为这里面是有坑的 : ) 要记得把 /tmp 也写进去, linux 系统用冒号分隔多个目录,对于早期 PHP 版本,目录后面加不加斜杠也是有讲究的
关于文件权限: 我自己的配置一般是 项目里面的文件夹 770 , 文件 640 (这个配置不适用于 CLI 模式) owner 是 root 或者你自己的账户, group 是 www-data |
16
DesignerSkyline 2016-10-06 00:02:10 +08:00
如果 WP 暂时需要更新升级,这个时候肯定是需要 777 的,需要的时候改一下,不需要的时候把权限给改回来就行。
|
17
ivmm 2016-10-06 00:03:51 +08:00
chown -R $user /dir
|
18
tabris17 2016-10-06 00:05:58 +08:00
open_basedir 只防 fopen ,能读写文件的方法多了去了
|
20
cxbig 2016-10-06 05:27:35 +08:00
1. 环境隔离可以用 docker
2. 777 是最糟糕的权限方式,你倒不如研究下如何避免使用它 |
23
shiji 2016-10-06 10:23:27 +08:00
@tabris17
我觉得首先呢,这个方法跟 PHP 没关系啊,需要拿到 MySQL 的权限。 其次,这个 SQL 需要当前 SQL 用户有 FILE 权限,通常来说创建的新用户默认都不会带有任何数据库核心权限( FILE,PROCESS,SHUTDOWN 之类的)。除非用户脑残,所有程序都用数据库的 root 账户跑。。 参看: http://dev.mysql.com/doc/refman/5.7/en/select-into.html The SELECT ... INTO OUTFILE 'file_name' form of SELECT writes the selected rows to a file. The file is created on the server host, so you must have the FILE privilege to use this syntax. |
26
kn007 2016-10-06 10:44:54 +08:00
如今居然还有 777 需求
|
27
tabris17 2016-10-06 10:59:26 +08:00
|
28
shiji 2016-10-06 11:14:44 +08:00
@tabris17 .htaccess 如果 Apache 对项目目录设置了 AllowOveride All 或者 Options 的话,应该可行.
shell_exec 。。这个。。属于作弊!相当于已经有了木马了 |
30
regist 2016-10-06 12:50:15 +08:00
难道只有我一个人用 700 600 么...
|
31
sutra 2016-10-06 15:38:04 +08:00
FreeBSD Jail
|
32
chemandy 2016-10-06 18:45:22 +08:00
从来没有 777 的路过...
|
33
just1 OP 尴尬、、、、
赶快下沉主题 TAT 我比较懒而已嘛 |
34
rainysia 2016-10-06 20:59:07 +08:00
我只能说给 777 的, 你 nginx/apache, php 绝对没配对, 而你也不知道为什么
|