如何在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生效。
相关推荐
-
让PHP以ROOT权限执行系统命令的方法
用来作为解决php以root权限执行一些普通用户不能执行的命令或应用的参考. 其实php里的popen()函数是可以解决这个问题的,但是由于某些版本的linux(如我使用的Centos 5)对系统安全的考虑, 使得这个问题解决起来麻烦了好多.先来看一个网友使用popen()函数的例子. 复制代码 代码如下: /* PHP中如何增加一个系统用户 下面是一段例程,增加一个名字为james的用户, root密码是 louis.仅供参考 */ $sucommand = "su root --comman
-
PHP调用Linux命令权限不足问题解决方法
业务背景: yourcmd为我的linux程序,它对权限要求非常严格,当用php去执行yourcmd程序 系统:CentOS 6.3 apache是php的执行用户 用exec函数去执行linux系统上的程序/usr/local/yourcmd/sbin/yourcmd php代码如下: 复制代码 代码如下: <?php $conf_file = "/var/www/html/webroot/test.tmp"; $command = "sudo /usr/local
-
理清PHP在Linxu下执行时的文件权限方法
一.文件权限及所属 1.文件有三种类型的权限,为了方便期间,可以用数字来代替,这样可以通过数字的加减,用一个数字就能标识这个文件的权限了,例如7=4+2+1,表示读写执行3个权限都有,6=4+2,表示有读写权限没有执行权限等等 2.联想web应用的rbac权限管理等,linux下同样有用户权限的管理,用户有用户名和用户组,一般创建用户时同时会创建同名的用户所属组. 先root账号登录随便新建一个目录和一个文件 #新建目录 mkdir abc #新建文件 touch abc.txt #查看 ls
-
如何在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脚本限制 把
-
nginx设置上传目录无执行权限的方法
nginx上也很简单,我们使用location..如下: 复制代码 代码如下: location ~ ^/upload/.*\.(php|php5)$ { deny all; } 其中upload换为你要设置的目录名字 这条规则的含义是匹配请求连接中开头是/upload/,中间匹配任意字符,结尾匹配.php或者.php5的页面,最后利用deny all禁止访问,这样就防止了上传目录的脚本执行权限
-
PHP上传目录禁止执行php文件实例讲解
导读: 禁止上传目录运行php等可执行文件,可以从一定程度上增加网站的安全性.之前我二次开发过别人开源的一个Thinkphp项目,我更换过Thinkphp内核,也检查过有没有后门和木马,感觉挺安全的,但后面还是被彩票平台篡改了首页,我没有仔细推敲和研究别人是怎么做到的,而是直接删掉了整个项目,对于不安全的源代码,我都是直接舍弃不要.后来想了想,应该是被上传了后门文件,然后shell提权修改了首页文件.为了解决这种安全隐患问题,我服务器安装了防篡改系统,同时禁止在上传目录里执行php文件. 需要防
-
apache,nginx上传目录无执行权限的设置方法
我们来看俩段通常对上传目录设置无权限的列子,配置如下: 复制代码 代码如下: <Directory "/var/www/upload"> <FilesMatch ".php"> Order Allow,Deny Deny from all </FilesMatch> </Directory> 还有网上那个对nginx上传目录无执行权限 复制代码 代码如下: location ~ ^/upload/.*\.(php|ph
-
iis、apache与nginx禁止目录执行asp、php脚本的实现方法
一般iis中比较简单,iis6如下图所示即可: 很多购买虚拟主机空间的用户,如果空间商提供了在线管理程序,也可以实现.具体的看下帮助即可. 需要知道目录名称,设置即可. iis7+禁止执行php等 IIS7也类似于IIS6.0,选择站点对应的目录,data.uploads及静态html文件目录,双击功能试图面板中的"处理程序映射"(如图2) 在"编辑功能权限--"中,我们直接去除脚本的执行权限即可.(如图3) apache中一般是通过.htaccess文件来限制 A
-
jquery uploadify和apache Fileupload实现异步上传文件示例
jQuery Uploadify + Apache Fileupload异步上传文件示例1.可以限制上传文件大小和类型,理论上任何类型的文件都可以上传(自己根据api配置即可):2.后台使用Apache commons-fileupload-1.3.1.jar作为上传工具包,本示例支持一次性多文件上传:3.文件上传目录可以任意指定,请在web.xml中配置:Uploadify api 详见http://www.uploadify.com/documentation/ FileUploadServ
-
教你在容器中使用nginx搭建上传下载的文件服务器
目录 一.安装nginx容器 二.配置nginx 三.支持文件上传 1. 配置nginx 2. 添加upload.html 3. 添加后面的处理服务 四.获取上传进度 1.修改配置 2. 修改上传页面 一.安装nginx容器 为了让nginx支持文件上传,需要下载并运行带有nginx-upload-module模块的容器: sudo podman pull docker.io/dimka2014/nginx-upload-with-progress-modules:latest sudo pod
-
python paramiko利用sftp上传目录到远程的实例
网上大部分都是上传文件,于是个人参照网上一些博客的内容,写了一个把windows上目录上传到远程linux的一个小程序. 下面是代码: class ExportPrepare(object): def __init__(self): pass def sftp_con(self): t = paramiko.Transport((self.ip, self.port)) t.connect(username=self.username, password=self.password) retur
-
Nginx 禁止直接访问目录或文件的操作方法
目录 前言 第一种:autoindex 配置 一级目录或整个虚拟主机开启目录流量 单独目录开启目录流量 二级目录开启目录流量 虚拟目录开启目录流量 第二种:nginx location 配置 一.禁止访问某些后缀文件 二.禁止访问目录或目录下文件 三.禁止访问某个目录下的指定文件后缀文件 四.nginx location 匹配相关 五.nginx 配置图片直接下载不打开 前言 Nginx 默认是不允许列出整个目录的. 如需此功能,打开 nginx.conf 文件或你要启用目录浏览虚拟主机的配置文
-
Apache commons fileupload文件上传实例讲解
文件上传的方法主要目前有两个常用的,一个是SmartUpload,一个是Apache的Commons fileupload. 我们这里主要介绍下第二个的用法,首先要上传文件,注意几个问题: 1 form表单内,要添加空间<input type="file" name="myfile"> 2 form表单的内容格式要定义成multipart/form-data格式 3 需要类库:1 commons-io.jar 2commons-fileupload-1.
随机推荐
- JS身份证信息验证正则表达式
- linux Shell获取某目录下所有文件夹的名称
- 如何判断电子邮件的地址格式是否正确?
- 一个简单的XML Schema的例子
- VMware虚拟机下hadoop1.x的安装方法
- Python利用pyHook实现监听用户鼠标与键盘事件
- PHP的魔术常量__METHOD__简介
- phpmyadmin提示The mbstring extension is missing的解决方法
- 实时抓取YAHOO股票报价的代码
- js正则表达式的使用详解
- Python迭代用法实例教程
- C#图像处理之霓虹效果实现方法
- 使用PHP数组实现无限分类,不使用数据库,不使用递归.
- JavaScript通过代码调用Flash显示的方法
- Javascript 浮点运算精度问题分析与解决
- Nodejs中解决cluster模块的多进程如何共享数据问题
- JavaScript实现相册弹窗功能(zepto.js)
- C语言位运算符:与、或、异或、取反、左移与右移详细介绍
- JavaScript控制两个列表框listbox左右交换数据的方法
- CentOS 7 中firewall-cmd命令详细介绍