探索者的博客
2020-12-30 10:33:02 1293

利用伪静态功能禁止以下目录运行php脚本

作者头像 探索者

linux主机的用户一般都是apache环境,使用 .htaccess 文件来设置,如果你网站根目录已经存在这个文件,那就复制一下代码添加进去。

RewriteEngine on
#安全设置 禁止以下目录运行指定php脚本
RewriteCond % !^$
RewriteRule a/(.*).(php)$ – [F]
RewriteRule data/(.*).(php)$ – [F]
RewriteRule templets/(.*).(php|htm)$ – [F]
RewriteRule uploads/(.*).(php)$ – [F]

windows主机的用户一般都是iis7、iis8环境,使用 web.config 文件来设置,请确认你的主机已经开启了伪静态而且网站根目录有 web.config 文件,有这个文件的可以复制以下代码添加到对应的rules内。


<rule name="Block data" stopProcessing="true">
  <match url="^data/(.*).php$" />
    <conditions logicalGrouping="MatchAny">
     <add input="{USER_AGENT}" pattern="data" />
     <add input="{REMOTE_ADDR}" pattern="" />
   </conditions>
  <action type="AbortRequest" />
</rule>
<rule name="Block templets" stopProcessing="true">
  <match url="^templets/(.*).php$" />
     <conditions logicalGrouping="MatchAny">
      <add input="{USER_AGENT}" pattern="templets" />
      <add input="{REMOTE_ADDR}" pattern="" />
    </conditions>
  <action type="AbortRequest" />
</rule>
<rule name="Block SomeRobot" stopProcessing="true">
   <match url="^uploads/(.*).php$" />
      <conditions logicalGrouping="MatchAny">
         <add input="{USER_AGENT}" pattern="SomeRobot" />
         <add input="{REMOTE_ADDR}" pattern="" />
      </conditions>
    <action type="AbortRequest" />
</rule>

Nginx下禁止指定目录运行PHP脚本

location ~* /(a|data|templets|uploads)/(.*).(php)$ {
return 403;
}

注意:这段配置文件一定要放在 location ~ .php(.*)$ 的前面才可以生效,配置完后记得重启Nginx生效。

测试有没有生效,可以随便创建一个PHP文件传到uploads文件夹下,执行:域名/uploads/测试文件.php  如果不能打开说明生效。


评论区

评论者头像

张三

2025-06-16

非常实用的文章,我学到了很多关于前端性能优化的知识。特别是缓存策略部分,对我帮助很大。

评论者头像

李四

2025-06-15

代码分割确实是提高前端性能的重要手段,请问作者有没有实际项目中遇到的代码分割最佳实践可以分享?

作者头像
探索者 作者
2025-06-16

感谢提问!在实际项目中,我通常会根据路由、组件和第三方库进行代码分割。对于大型组件库,可以考虑使用动态导入来实现按需加载。