网站首页 > 精选教程 正文
我秀站外合作有一个需求:需在一台web服务器上增加一个虚拟主机用来做图片资源站,所用程序为第三方,担心有后门程序,因此希望最好隔断与原机器其他服务的关系。
思考了一下,确实有一些风险存在。目前我们服务器上都统一使用nobody用户启动nginx和php,包括web目录,这些机器上部分有多个域名在一起运行。这样至少存在一个问题:如果某一个虚拟主机站点有问题,其web目录如/diska/htdocs_1被注入恶意程序,那么其他的站点目录如/diska/htdocs_2域名也很可能难以幸免地通过这个恶意程序被访问到。分开不同用户权限,固然可以解决这个问题。但同时也意味需要徒增一个特定用户,想找一个类似chroot功能。经过搜索查找,nginx中可以增加一个配置项“fastcgi_param PHP_VALUE xxxx”达成这功能:
server {
listen 80 ;
……
location ~ \.(php|phtml) {
……
fastcgi_param PHP_VALUE "open_basedir=$document_root:/tmp/";
……
}
}
配置项加入在需要设置vhost中,冒号":"为分隔多个路径。当然也可以加入到 fastcgi_params中让nginx全局调用。
这样实现了虚拟主机限制在各自的web目录中,当某一个域名下出现漏洞或被攻击时,同一服务器下的其他应用域名不会因此而导致程序文件被查看或修改,避免“跨站”影响。
在查找过程中,同时发现如被入侵,虽然禁锢了对其他web目录的操作,但php程序还可以调用系统的命令进行一些操作。进一步加强安全,降低webshell调用的系统命令,可在php.ini下加入以下选项:
disable_functions = rmdir,exec,system,passthru,shell_exec
以上,我和松哥通过一些探针脚本进行测试验证,成功通过检测。
如果没上述的设置,那么恶意的脚本能直接通过浏览器访问到其他站点目录的内容,甚至可以本地调用系统命令启动一些基于php启动权限拥有者可以启动的端口。
供参考。
**注** 网上一些资料说在php5.2版本下,这些设置是不生效的。特意试了一下,真的如此。幸好我们的普遍在5.3以上。
猜你喜欢
- 2024-10-04 私有云搭建ubuntu+php7.2+nginx+mysql+nextcloud
- 2024-10-04 【网络安全】关于PHP Study nginx解析高危漏洞的预警通报
- 2024-10-04 linux中docker配置nginx+php+mysql+thinkphp完整案例
- 2024-10-04 php为什么要用nginx做代理 为什么用php开发网站
- 2024-10-04 nginx和php-fpm通信,使用unix socket还是TCP
- 2024-10-04 使用docker-compose安装php+nginx+memcached
- 2024-10-04 快速搭建NGINX-HTTPD-PHP-MySQL环境
- 2024-10-04 nginx无法解析PHP以及网站路径问题
- 2024-10-04 Nginx提升:Nginx+PHP+FastCGI加速模式
- 2024-10-04 记一次项目迁移升级 nginx 与php分离部署
你 发表评论:
欢迎- 最近发表
-
- 我的世界光影MOD下载(我的世界光影mod下载安装)
- 我的世界1.7/1.8VoxelMap小地图MOD下载
- 我的世界1.7.10多世界 整合包(我的世界1.7.10forge整合包)
- 我的世界1.8最好用的修改器下载(我的世界1.8最好用的修改器下载安装)
- 我的世界更多弯曲动作MOD下载(我的世界更多弯曲动作mod下载手机版)
- 我的世界龙珠MOD下载(我的世界龙珠模组整合包下载)
- 我的世界1.7.10以太2 下载(我的世界以太2mod1.12.2)
- 我的世界虚拟人生MOD下载分享(我的世界虚拟人生下载安装)
- 我的世界无正版账号的简单联机方法(非网易版,仅适用于局域网)
- “我的语言极限,即是我的世界的极限。” ——《On Java》书籍推荐
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)