通过伪静态禁止上传目录uploadfile下的php脚本执行权限

      发布在:个人笔记      评论:0 条评论

要通过伪静态规则禁止上传目录 uploadfile 下的 PHP 脚本执行权限,请根据你的服务器类型(ApacheNginx 或 **IIS选择以下配置方法:


一、Apache 服务器(使用 .htaccess 文件)

  1. uploadfile 目录下创建或修改 .htaccess 文件。

  2. 添加以下规则(根据 Apache 版本选择配置):

    Apache 2.4+ 语法:

   <IfModule mod_authz_core.c>
       <FilesMatch "\.php$">
           Require all denied
       </FilesMatch>
   </IfModule>
  1. Apache 2.2 及以下语法:

 <FilesMatch "\.php$">
       Deny from all
   </FilesMatch>
  1. 确保服务器允许 .htaccess 覆盖配置(主配置需设置 AllowOverride All)。


二、Nginx 服务器

  1. 在 伪静态配置中添加以下规则:

 location ~ ^/uploadfile/.*\.php$ {
       deny all;
       return 403;
   }

三、IIS服务器通过 web.config 文件配置

  1. uploadfile 目录下创建或修改 web.config 文件,内容如下:

 <?xml version="1.0" encoding="UTF-8"?>
   <configuration>
       <system.webServer>
           <!-- 拒绝所有对 PHP 文件的请求 -->
           <security>
               <requestFiltering>
                   <fileExtensions>
                       <add fileExtension=".php" allowed="false" />
                   </fileExtensions>
               </requestFiltering>
           </security>
           <!-- 可选:通过 URL 重写返回 403 -->
           <rewrite>
               <rules>
                   <rule name="Block PHP in Upload" stopProcessing="true">
                       <match url="^uploadfile/.*\.php$" />
                       <action type="CustomResponse" statusCode="403" statusReason="Forbidden" />
                   </rule>
               </rules>
           </rewrite>
       </system.webServer>
   </configuration>
  1. 保存文件,并确保 IIS 已启用以下模块:

    • 请求过滤(Request Filtering)

    • URL 重写(URL Rewrite)(如果使用重写规则)


三、验证配置

  1. 上传一个测试文件 test.phpuploadfile 目录。

  2. 尝试通过浏览器访问该文件(如 http://yourdomain.com/uploadfile/test.php)。

  3. 如果返回 403 Forbidden 错误,则配置生效。


相关文章
热门推荐