对于在一台服务器上有多个虚拟主机的人来说,Apache有一个很好用的地方---配置php_admin_value,在里面配置一下 open_basedir就可以了。

 
但是Nginx却没有这样的设置,一旦某用户在他的虚拟主机下上传了一个WEBSHELL之类的东西,其他用户数据就遭殃了,今天就来解决这样的问题,怎么样让用户无法旁注。
 
 
第一步,需要在php.ini 设置open_basedir的值,比如网站目录全部在 /www/web/ 下面,
 
 
例如 /www/web/xxx.com/ 下面是xxx.com网站 
 
 
那么我可以设置php.ini中 open_basedir="/www/web/:/tmp/" (注意,/tmp 必须设置,否则影响上传文件,如果你设置了 upload_tmp_dir ,那么把/tmp设置成 upload_tmp_dir 的值)
 
 
然后执行
# chmod 755 -R /www/web/
# chmod 711 /www/web/
 
 
这时,网站依然能访问,可是你试试上传一个WEBSHELL,看看还能列 /www/web/的目录么?
 
 
但是问题又来了,如果说/www/web/下目录命名非常有规律,很容易被猜解到,直接输入 /www/web/xxx.com 就可以列别人的目录。
 
 
别急,还有办法,把 /www/web/xxx.com 重命名为复杂的名字,比如 /www/web/xxx.com_41237415sdfad,
 
 
再把PHP.INI 里面的 display_errors 关闭,攻击者基本上就会放弃了。

nginx 防 webshell 跨目录的更多相关文章

  1. 解决nginx发布网站跨目录访问

    解决nginx发布网站跨目录访问(thinkphp5+lnmp) 到:usr/local/nginx/conf/vim fastcgi.cof 把最后一行加上井号#注释掉保存重启 restart 参考 ...

  2. 简单Nginx下防跨站、跨目录安全设置,支持PHP 5.3.3以上版本

    Nginx下存在跨站和跨目录的问题,跨站和跨目录影响同服务器/VPS上的其他网站. PHP在5.3.3以上已经增加了HOST配置,可以起到防跨站.跨目录的问题. 如果你是PHP 5.3.3以上的版本, ...

  3. LNMP下防跨站、跨目录安全设置,仅支持PHP 5.3.3以上版本

    PHP 5.3.3以上的版本,可以修改/usr/local/php/etc/php.ini在末尾里加入: [HOST=www.vpser.net] open_basedir=/home/wwwroot ...

  4. php中cookie技术关于跨目录调用cookie值的问题

    今天做项目发现了一个奇葩错误,以cookie技术为主,反复测试发现cookie不能跨目录调用. 我在F:wamp\www\test\下面有1.php和2.php其中1.php接受2.php中setco ...

  5. nginx 从vagant挂载目录中加载nginx.conf配置进行开机启动

    nginx从vagrant挂载目录中读取配置启动,将nginx加入开机启动项!开机启动的时候nginx会因为加载不了配置导致启动失败! 原因是开机启动nginx服务在vagrant挂载之前,导致无法正 ...

  6. Nginx 实现AJAX跨域请求

    在工作中遇到跨域请求的问题: AJAX从一个域请求另一个域会有跨域的问题.那么如何在nginx上实现ajax跨域请求呢?要在nginx上启用跨域请求,需要添加add_header Access-Con ...

  7. Nginx反向代理的目录访问问题

    Nginx反向代理的目录访问问题 2013-05-13 23:21 2730人阅读 评论(0) 收藏 举报 从昨天就开始纠结了,在做实验的时候,遇到目录访问的问题,如下 前端nginx vhost的设 ...

  8. 夺命雷公狗---Thinkphp----9之中间层的创建,防止跨目录访问

    我们创建一个CommonController.class.php的中间层,让后让别的控制器都直接继承CommonController这个控制器即可决解跨目录访问的问题, <?php namesp ...

  9. cookie跨域,跨目录访问及单点登录。

    首先普及下域名的知识: 域名: baidu.com    // 一级域名  A play.baidu.com  //  二级域名 B abc.play.baidu.com // 三级域名  C 数有几 ...

随机推荐

  1. js获取页面的来源页

    <html xmlns="http://www.w3.org/1999/xhtml"> <head id="Head1" runat=&quo ...

  2. php事件驱动

    1. [文件] class.Dispatcher.php ~ 967B     下载(9) ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 2 ...

  3. iOS开发工具——统计Crash的工具Crashlytics

    简介 Crashlytic 成立于2011年,是专门为移动应用开者发提供的保存和分析应用崩溃信息的工具.Crashlytics的使用者包括:支付工具Paypal, 点评应用Yelp, 照片分享应用Pa ...

  4. ReactiveCocoa 浅析

    转载自:http://limboy.me/ios/2013/12/27/reactivecocoa-2.html   ReactiveCocoa是Github开源的一款cocoa FRP 框架,我在之 ...

  5. robot framework -记录错误

    1.注意ie浏览器代理设置,报奇怪的错误 2.注意浏览器的安全设置,保护模式全部不要勾选

  6. 破解SharpPlus Sqlite Develope[转]

    1.运行里输入regedit,打开注册表 2.编辑->查找,输入sqlite 查找结果如下 3.直接删除SqliteDev节点就可以了,重新打开Sqlite Developer就可以用了,当然还 ...

  7. POJ 2773 Happy 2006(欧几里德算法)

    题意:给出一个数m,让我们找到第k个与m互质的数. 方法:这题有两种方法,一种是欧拉函数+容斥原理,但代码量较大,另一种办法是欧几里德算法,比较容易理解,但是效率很低. 我这里使用欧几里德算法,欧几里 ...

  8. MVC工作流程

    1  浏览者 => 调用控制器,对它发出指令 2 控制器  => 按照指令选取一个合适的模型 3 模型    =>  按控制器指令取出相应的数据 4 控制器 =>  按指令选取 ...

  9. 设计模式---Manager(管理器)

    设计模式之美:Manager(管理器) 索引 意图 结构 参与者 适用性 效果 实现 实现方式(一):Manager 模式的示例实现. 意图 将对一个类的所有对象的管理封装到一个单独的管理器类中. 这 ...

  10. FusionCharts使用问题及解决方法(一)-FusionCharts常见问题大全

    当你利用FusionCharts创建图表时报错,原因是多方面的.本文总结了一些常见问题及解决方法供大家参考,希望对大家有帮助. 如果你无法看到任何图表: 如果浏览器中的进度条一直加载,或者右键菜单显示 ...