入门指引 Server Client Process AsyncIO Memory HttpServer WebSocket 高级 其他

发布于 2015-08-09 09:40:12 | 109 次阅读 | 评论: 0 | 来源: 网络整理

在某些情况下,主进程需要使用Root来启动,比如需要监听80端口。这时Worker进程的业务代码也会运行在root用户下,这是非常不安全的。 业务代码的漏洞可能会导致整个服务器被攻破,所以需要将Worker进程所属用户和组改为其他用户。 在PHP中使用posix系列函数即可完成此操作。可在swoole的onWorkerStart回调中加入以下代码:

$user = posix_getpwnam('www-data');
posix_setuid($user['uid']);
posix_setgid($user['gid']);

重定向根目录

默认是没有重定向的,在PHP代码中访问/etc/目录,就是指文件系统的/etc/,这样是不安全的。比如PHP代码中误操作执行rm -rf /。会带来严重的后果。 可以使用chroot函数,将根目录重定向到另外一个安全的目录。

chroot('/tmp/root/');

使用swoole配置项

$server->set(array('chroot' => '/tmp/root', 'user' => 'www-data', 'group' => 'www-data'));
最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务