首页 > 教程 >
Nginx环境下PHP安全设置
2023-02-14教程围观次
简介当下Nginx越发流行,宝塔面板、Oneinstack、LNMP等集成环境大多数都使用Nginx作为WEB服务,Nginx+PHP情况下使用FPM(FastCGI进程管理器)来执行PHP,这篇教程抛开PHP程序写法不严谨造成的本身漏洞,仅从WEB服务和PHP本身设置来加强PHP程序安全。禁用危险函数PHP提供的system()等函数可以直接执行系统命令,如果程序限制不严谨或写法不规范,被骇客利用是
当下 Nginx越发流行,宝塔面板、Oneinstack、LNMP等集成环境大多数都使用Nginx作为WEB服务,Nginx + PHP情况下使用FPM(FastCGI 进程管理器)来执行PHP,这篇教程抛开PHP程序写法不严谨造成的本身漏洞,仅从WEB服务和PHP本身设置来加强PHP程序安全。
禁用危险函数
PHP提供的system()等函数可以直接执行系统命令,如果程序限制不严谨或写法不规范,被骇客利用是非常危险的,禁用此类较为危险的函数非常有必要。需要修改php.ini,添加如下内容:
disable_functions = passthru,exec,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_restore,dl,openlog,syslog,read ,sym ,popepassthru,stream_socket_server,fsocket,popen
防止跨站攻击
跨站攻击通常表现为A网站被黑之后,骇客利用脚本再次访问B网站或其它目录,最终可能导致所有网站全部沦陷。
open_ dir 参数将php所能打开的文件限制在指定的目录树中,包括文件本身。当程序要使用例如fopen()或file_get_contents()打开一个文件时,这个文件的位置将会被检查。当文件在指定的目录树之外,程序将拒绝打开。open_ dir设置的方法比较多,这里列出几个常用的。
php.ini设置
可以直接修改php.ini直接加入
open_ dir="指定目录"
从PHP脚本上设置
在程序脚本上限制:
ini_set('open_ dir', '指定目录');
通过.user.ini 进行设置
先来看看官方具体是如何解释.user.ini这个文件的:
自 PHP 5.3.0 起,PHP 支持基于每个目录的 .htaccess 风格的 INI 文件。此类文件仅被 CGI/FastCGI SAPI 处理。此功能使得 PECL 的 htscanner 扩展作废。如果使用 Apache,则用 .htaccess 文件有同样效果。
除了主 php.ini 之外,PHP 还会在每个目录下扫描 INI 文件,从被执行的 PHP 文件所在目录开始一直上升到 web 根目录($_SERVER['DOCUMENT_ROOT'] 所指定的)。如果被执行的 PHP 文件在 web 根目录之外,则只扫描该目录。
在 .user.ini 风格的 INI 文件中只有具有 PHP_INI_PERDIR 和 PHP_INI_USER 模式的 INI 设置可被识别。
简而言之,也就是说当PHP以CGI/FastCGI SAPI方式运行时,会去读取一个.user.ini
的配置,我们可以在这里面设定open_ dir
参数来防止跨站。
在站点根目录下新建一个.user.ini
,内容如下:
open_ dir=/data/wwwroot/:/tmp/:/proc/
为防止.user.ini
被篡改,可以给这个文件加上隐藏属性。
chattr +i .user.ini
目前已知的宝塔面板,军哥LNMP(lnmp.org)默认使用.user.ini
来防止跨站,这个方式非常灵活,可以针对某个网站单独设置。
禁止部分目录执行PHP
大多数PHP框架,如CodeIgniter、ThinkPHP都是单一入口,只需要index.php有入口权限程序就能正常运行。上传目录、静态文件目录完全没必须要赋予PHP执行权限,否则反而可能被利用。nginx可以通过下面的规则来禁止某个目录执行PHP:
#uploads|templets|data 这些目录禁止执行PHPlocation ~* ^/(uploads|templets|data)/.*.(php|php5)$ { return 444;}
其它说明
以上主要是针对PHP本身设置和Nginx上进行限制,若有不足还请指正。
下载链接:网站源码/小程序源码/网站模板下载
下载排行
- 最新版去水印小程序源码/基于WordPress的短视频去水印小程序源码
- 某鱼最近卖的很火蓝色版微信去水印小程序源码+接口
- 最新短视频去水印小程序源码/带流量主/外卖CPS系统/批量解析/修改MD5
- 帝国CMS仿管理资源吧资料下载网站模板源码/下载会员+积分付费下载功能自动采集资源网站源码
- 文案馆头像壁纸小程序源码+带后台
- 苹果CMS二次元慕乔JOELEO模板/精美UI手机版影视模板
- 知识付费小程序源码升级版知识付费变现小程序源码+卡密-独立后台版本
- 最新去水印小程序源码分享/无需后台/对接接口/支持全网去水印功能
- 鲸发卡v11.61系统源码-开心修复版
- 新版多功能去水印工具微信小程序源码下载+带流量主功能