尧图精选

拒绝文件上传

🕒 发布时间:2026/10/1 19:53:07 📁 来源:尧图网络
#配置文件php版本下php.ini一、php.ini 核心配置拒绝上传; 核心关闭文件上传功能 file_uploads Off ; 下面这几项虽然file_uploadsOff时不生效配套写上收紧限制 upload_max_filesize 0 post_max_size 2M max_file_uploads 0 ; 配套LFI相关按需保留如果你只是单纯关闭上传 ;open_basedir /var/www/html allow_url_fopen Off allow_url_include Off ; 调试方便看报错 display_errors On display_startup_errors On memory_limit 128M max_execution_time 30 max_input_time 30关键参数file_uploads OffPHP 一旦设置这个会直接拒绝接收所有multipart/form-data文件上传请求。DVWA 文件上传页面点击上传PHP 不会接收文件$_FILES数组为空直接上传失败。二、额外两层防御Apache 层面 目录权限多层拒绝上传1. 锁定 uploads 目录权限禁止写入就算 php 上传开了也写不进去# 移除写权限www-data用户不能新建/修改文件 sudo chown -R www-data:www-data /var/www/html/dvwa sudo chmod -R 555 /var/www/html/dvwa/hackable/uploads555只读不能写入任何文件。2. Apache 配置拦截可选额外防护禁止 POST 上传请求编辑 apache 站点配置一般路径/etc/apache2/sites-available/000-default.conf在VirtualHost块内添加# 禁止上传文件表单类型 IfModule mod_rewrite.c RewriteEngine On RewriteCond %{Content-Type} multipart/form-data [NC] RewriteRule ^ - [R403,L] /IfModule开启后所有 multipart/form-data 表单直接返回 403 禁止访问。三、重启 Apache 生效sudo systemctl restart apache2四、验证效果访问 DVWA 文件上传页面选择任意文件点击上传PHP 会提示类似警告Warning: File uploads are disabled in php.ini文件不会被接收上传直接失败。访问 phpinfo 页面查看file_uploads→Off。五、区分两种防御方案二选一方案 A推荐上面这套php.ini file_uploadsOffPHP 底层直接关掉上传最彻底任何 PHP 代码都接收不到上传文件。方案 B仅目录锁死php 上传还开着file_uploadsOn但 uploads 目录 chmod 555 只读PHP 能收到文件但无法写入磁盘DVWA 会提示上传失败适合演示权限层面防御。六、生产环境补充说明生产环境不建议直接file_uploadsOff如果业务完全不需要上传才用这个业务需要上传时不能关闭改用文件后缀、MIME、文件头校验。allow_url_includeOff是防御 RFI 远程文件包含。
上一篇/下一篇内容由系统自动关联 返回资讯列表 →