linux系统下 由于你的站点的php配置存在限制,PHP 配置 open_basedir 让各虚拟站点独立运行...

PHP 配置 open_basedir 让各虚拟站点独立运行

当时觉得这跟 IIS 相比, 实在太差了, 因为在 IIS 里, 可以在安全性里设置一个站点甚至一个目录访问时使用的匿名账号, 只要各个站点使用的账号不一样, 站点间的安全就不会互相影响这几天才发现, 原来当时的想法是错的, 在 Apache 下, 也可以配置 PHP 来实现各站点间的相互独立运行, 虽然不能详细控制以某个用户运行某个站点, 但至少不会再出现整个服务器被拿下的局面

通过配置 PHP 的 open_basedir 即可以实现该控制, 这个配置在 IIS 下也有用, 但这里只讲 Apache 下的配置

open_basedir 可将用户访问文件的活动范围限制在指定的区域, 通常是其家目录的路径, 也

可用符号 "." 来代表当前目录 open_basedir 也可以同时设置多个目录, 在 Windows 中用分号分隔目录, 在任何其它系统中用

冒号分隔目录当其作用于 Apache 模块时, 父目录中的 open_basedir 路径自动被继承以下以 Linux 系统下的配置为例

方法一: 在 php.ini 里配置

open_basedir = .:/tmp/

方法二: 在 Apache 配置的 VirtualHost 里设置

php_admin_value open_basedir .:/tmp/

方法三: 在 Apache 配置的 Direcotry 里设置

php_admin_value open_basedir .:/tmp/

关于三个配置方法的解释:

a 方法二的优先级高于方法一, 也就是说方法二会覆盖方法一; 方法三的优先级高于方法二, 也就是说方法三会覆盖方法二;

b 配置目录里加了 / tmp / 是因为 php 默认的临时文件 (如上传的文件 session 等) 会放在该目录, 所以一般需要添加该目录, 否则部分功能将无法使用;

c 配置目录里加了. 是指运行 php 文件的当前目录, 这样做可以避免每个站点一个一个设置;

d 如果站点还使用了站点目录外的文件, 需要单独在对应 VirtualHost 设置该目录;

设置完成后, 记得找个 PHP 网马 (如: phpspy) 来玩一玩, 测试一下有没有问题, 不出意外, 权限应该是控制得相当好的

大家还有什么 PHP 安全配置的经验, 欢迎分享交流

来源: https://www.php1.cn/detail/php-25505aad62.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值