VPS侦探论坛

 找回密码
 注册
查看: 8344|回复: 3

nginx防webshell跨目录

[复制链接]
发表于 2010-8-5 13:46:13 | 显示全部楼层 |阅读模式

对于在一台服务器上有多个虚拟主机的人来说,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_41237415sdfadfsaf,再把display_errors 关闭,攻击者基本上就会放弃了。
美国VPS推荐: 遨游主机LinodeLOCVPS主机云搬瓦工80VPSVultr美国VPS主机中国VPS推荐: 阿里云腾讯云。LNMP付费服务(代装/问题排查)QQ 503228080
发表于 2012-4-19 20:59:14 | 显示全部楼层


測試成功?20000000000000
Linux下Nginx+MySQL+PHP自动安装工具:https://lnmp.org
发表于 2012-4-24 13:54:20 | 显示全部楼层

那如果是装了lnmpa呢?还需要配置这些吗?
美国VPS推荐: 遨游主机LinodeLOCVPS主机云搬瓦工80VPSVultr美国VPS主机中国VPS推荐: 阿里云腾讯云。LNMP付费服务(代装/问题排查)QQ 503228080
发表于 2012-5-7 10:44:30 | 显示全部楼层



不错,一直担心这种问题
Linux下Nginx+MySQL+PHP自动安装工具:https://lnmp.org
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|VPS侦探 ( 鲁ICP备16040043号-1 )

GMT+8, 2024-9-22 23:38 , Processed in 0.025220 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表