当前位置: 首页 > 编程笔记 >

如何在Apache和Nginx禁止上传目录里PHP的执行权限

袁耀
2023-03-14
本文向大家介绍如何在Apache和Nginx禁止上传目录里PHP的执行权限,包括了如何在Apache和Nginx禁止上传目录里PHP的执行权限的使用技巧和注意事项,需要的朋友参考一下

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

在虚拟主机配置文件中增加php_flag engine off指令即可,配置如下:

 Options FollowSymLinks
 AllowOverride None
 Order allow,deny
 Allow from all 
 php_flag engine off

另外一种方法,是设置在htaccess里面的,这个方法比较灵活一点,针对那些没有apapche安全操作权限的网站管理员:
Apache环境规则内容如下:Apache执行php脚本限制 把这些规则添加到.htaccess文件中
代码如下:

RewriteEngine on RewriteCond % !^$
RewriteRule uploads/(.*).(php)$ – [F]
RewriteRule data/(.*).(php)$ – [F]
RewriteRule templets/(.*).(php)$ –[F]

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

Nginx更简单,直接通过location条件匹配定位后进行权限禁止,可在server配置段中增加如下的配置

如果是单个目录:

location ~* ^/uploads/.*\.(php|php5)$
{
 deny all;
}

如果是多个目录:

location ~* ^/(attachments|uploads)/.*\.(php|php5)$
{
 deny all;
}

注意:这段配置文件一定要放在下面配置的前面才可以生效。

location ~ \.php$ {
fastcgi_pass  127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include    fastcgi_params;
}

最后给一个完整的配置示例

location ~ /mm/(data|uploads|templets)/*.(php)$ {
 deny all;
}

location ~ .php$ {
 try_files $uri /404.html;
 fastcgi_pass  127.0.0.1:9000;
 fastcgi_index index.php;
 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 include    fastcgi_params;
}

配置完后记得重启Nginx生效。

 类似资料:
  • 本文向大家介绍Apache设置目录禁止访问,包括了Apache设置目录禁止访问的使用技巧和注意事项,需要的朋友参考一下 默认apache在当前目录下没有index.html入口就会显示目录。让目录暴露在外面是非常危险的事,如下操作禁止apache显示目录: 进入apache的配置文件 httpd.conf 找到: Options Indexes FollowSymLinks 修改为: Option

  • 我已经成功安装了使用PHP-FPM的nginx,但不幸的是,从不同目录加载PHP文件时遇到了一些问题。我的所有文件都位于/var/www/html的子目录中(例如,所有css文件位于/var/www/html/css,所有javascript文件位于/var/www/html/js,所有php文件位于/var/www/html/php)。根据这一点,我将php文件的根目录路径更改为/var/www

  • 我有3个域名,正在尝试使用Nginx将所有3个站点托管在一台服务器(数字海洋水滴)上。 谜题1。命名为mysite2。命名为mysite3。名称 其中只有一个有效。另外两个导致403个错误(以相同的方式)。 在我的nginx错误日志中,我看到:。 我的站点已启用配置为: 所有3个站点都有几乎相同的配置文件。 每个网站的文件都在 /usr/share/nginx/mysite1.name/someF

  • 我正在使用springboot,我正在使用执行器和prometheus暴露度量。我想暴露“信息”、“健康”、“度量”、“prometheus”、“关闭”等等。但是即使我指定应用程序属性,我看到的是甚至根“/执行器”也暴露了。 我想禁用根部执行器,只有我之前说过的5个成员。 有没有办法不只暴露/执行器endpoint?我也尝试过在应用程序属性中这样做: 这是外露致动器的列表:

  • 我正在尝试使用 Apache Camel 对目录进行简单的侦听,并通过 ftp 将文件上传到外部位置。我是新来的。 我可以用这个脚本将文件从一个目录移动到另一个目录。所以我想我已经走到一半了。我现在正努力将它从一个目录移动到ftp服务器目录。我已经用ftp客户端测试了ftp连接,一切正常。 当我运行它时,它会将文件移动到名为“.camel”的目录中,但不上传它?它没有输出任何错误?我不确定输出或查

  • 我已经安装了MySQL 5.5。34,Apache2.2。15和PHP5.5。4在我的linux Redhat系统(2.6.32-220.17.1.el6.x86_64)上按各自的顺序排列。 当php脚本在web浏览器上运行时,它被apache解释为html,尽管它在命令行中运行良好。 我在httpd.conf文件中做了以下更改:我有未注释的LoadMoulesphp5_module模块/libp