php 如何进行环境隔离

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

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

2730 次点击
所在节点    问与答
34 条回复
gdtv
2016-10-06 06:59:51 +08:00
@tabris17 求突破 open_basedir 的方法,谢谢
tabris17
2016-10-06 10:09:33 +08:00
@shiji
@gdtv

利用 mysql 的 select ...... into outfile ......
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.
Doubear
2016-10-06 10:41:41 +08:00
php-fpm 可以配置 chroot
tabris17
2016-10-06 10:43:43 +08:00
@shiji

还想到一个,利用.htaccess 覆盖 php.ini 配置,不过没侧过,不知道是否有效
kn007
2016-10-06 10:44:54 +08:00
如今居然还有 777 需求
tabris17
2016-10-06 10:59:26 +08:00
@shiji

另外 利用执行外部命令也一样可以绕过

比如:
shell_exec("echo sometext>/other/path/bypass.txt");
shiji
2016-10-06 11:14:44 +08:00
@tabris17 .htaccess 如果 Apache 对项目目录设置了 AllowOveride All 或者 Options 的话,应该可行.
shell_exec 。。这个。。属于作弊!相当于已经有了木马了
iyaozhen
2016-10-06 11:19:01 +08:00
@shiji 所以还是要从源头解决问题,楼主为什么要那么多 777 。😱
regist
2016-10-06 12:50:15 +08:00
难道只有我一个人用 700 600 么...
sutra
2016-10-06 15:38:04 +08:00
FreeBSD Jail
chemandy
2016-10-06 18:45:22 +08:00
从来没有 777 的路过...
just1
2016-10-06 18:52:43 +08:00
尴尬、、、、
赶快下沉主题 TAT 我比较懒而已嘛
rainysia
2016-10-06 20:59:07 +08:00
我只能说给 777 的, 你 nginx/apache, php 绝对没配对, 而你也不知道为什么

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

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

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

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

© 2021 V2EX