欢迎光临 Rick 's BLOG
日志首页  | C# .Net编程  | 原创作品  | 生活点滴  | C\C++相关  | 多媒体相关※ERMP  | VB相关  | 其它运维与编程  |  留言簿
新博客系统线上部署测试 限制nginx目录中php的执行权限后防止php文件数据泄漏
未知  预防文件上传漏洞,配置nginx限制php执行目录
[ 发布日期:1年前 (2023-11-21) ]   [ 来自:本站原创 ] [分类:其它运维与编程]
为了预防文件上传漏洞,需要对nginx的目录中php文件的执行权限进行限制。

按照网上的默认配置是整个网站都可以执行 php 文件。

我们这里将限制php的执行权限到最小的情况。

1、因为一般php框架开发的程序,只有一个index.php的入口文件。
所以我们按最小权限配置,只允许 根目录的index.php 可以执行,其它php文件都禁止执行

[复制到剪贴板]


server
{
   
listen 80
   
server_name www.rickw.cn rickw.cn;
   
root /var/www/htdocs/public;

   
index index.htm index.html index.php;

   
# 只允许 index.php 有php脚本的执行权限
    
location /index.php {
    
fastcgi_split_path_info ^(.+\.(?:php|phar))(/.*)$;

    
fastcgi_intercept_errors on;
    
fastcgi_index  index.php;
    include        
fastcgi_params;
    
fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    
fastcgi_param  PATH_INFO $fastcgi_path_info;
    
fastcgi_pass   php-fpm;
  }


   
location / {
    
# 这里是处理 CodeIgniter4 中的URL重写
    
try_files $uri $uri/ /index.php;
   }

   
# 注意 这里不要 include 其它默认配置,避免其它配置中有php的执行权限.
   # 不要   include /etc/nginx/default.d/*.conf;

   
error_page 404 /404.html;
   
location = /40x.html {
   }

   
error_page 500 502 503 504 /50x.html;
   
location = /50x.html {
   }

}
 




2、其它的php系统,也大都只会要求根目录的php文件可以执行
这样可以配置只允许根目录可以执行php
修改方式 location /index.php   修改为如下:
location ~ ^/[^/]+\.php$  即可


权限限制后还需要注意数据安全漏洞,使用php框架的系统基本不用考虑
网站可以访问目录中如果还存在其它php,当用户访问时会作为静态文件直接返回。

对于php框架来说,其它php都在public目录之外,是无法直接访问的,不会出现这种问题。

对于其它php系统来说,就需要注意了。这种情况要防止 php 文件中的信息泄漏。
对于存储安全信息的php配置文件,建议放置到 网站目录以外,让用户无法访问。
具体的可以参考一些php框架的目录结构。



可以参考 限制nginx目录中php的执行权限后防止php文件数据泄漏 进行配置,禁止php文件下载。
引用通告地址 (0):
复制引用地址https://www.rickw.cn/trackback/265
复制引用地址https://www.rickw.cn/trackback/265/GBK
[本日志由 rick 于 1年前 (2023-11-22) 编辑]
[ 分类:其它运维与编程  | 查看:510 ]

暂时没有评论,快来发表一个评论吧。
发表评论
作者:   用户:[访客] 
评论:

表  情
禁止表情 | 禁止UBB | 禁止图片 | 识别链接
对不起,你没有权限上传附件!
验证:
 
PoweredBy R-Blog V1.00 © 2004-2024 WWW.RICKW.CN, Processed in second(s) , 7 queries    京ICP备17058477号-5