apache,nginx上传目录无执行权限的设置方法
我们来看俩段通常对上传目录设置无权限的列子,配置如下:
代码如下:
<Directory "/var/www/upload">
<FilesMatch ".php">
Order Allow,Deny
Deny from all
</FilesMatch>
</Directory>
location ~ ^/upload/.*\.(php|php5)$
{
deny all;
}
这些配置表面上看起来是没什么问题的,确实在windows下可以这么说。
但是*nux就不同了,大家都是知道的*nux操作系统是区分大小写的,这里如果换成大写后缀名*.phP一类就bypasss了
<Directory "/var/www/upload">
<FilesMatch "(?i:.php)"> //?是尽可能多的匹配.php的字符串,i是不区分大小写,然后冒号后面跟上正则表达式
Order Allow,Deny
Deny from all
</FilesMatch>
</Directory>
上面的意思就是说,/var/www/upload目录下所有php文件不区分大小写,通过order,allow,deny原则判断拒绝执行php文件,对nginx同样也是可应用的
注:st0p专门为此正则用法写了文章,对这个正则不理解的可以参考
http://www.jb51.net/article/25673.htm
另外一种方法,这个我们都用过
代码如下:
<Directory "/var/www/upload">
php_admin_flag engine off
</Directory>
相比之下我还是看好的一种方法
相关推荐
-
linux文件上传,给文件或目录添加apache权限的方法
在LAMP环境中,测试一个简单的php文件上传功能时,发现/var/log/apache2/error.log中出现如下php警告: 1. [Tue Jan 31 09:40:27 2012] [error] [client 127.0.0.1] PHP Warning: move_uploaded_file(/home/leotody/32883679.jpeg): failed to open stream: Permission denied in /var/www/upload_file
-
Apache设置目录禁止访问
默认apache在当前目录下没有index.html入口就会显示目录.让目录暴露在外面是非常危险的事,如下操作禁止apache显示目录: 进入apache的配置文件 httpd.conf 找到: Options Indexes FollowSymLinks 修改为: Options FollowSymLinks 其实就是将Indexes去掉,Indexes表示若当前目录没有index.html就会显示目录结构. 非常的简单吧!
-
apache,nginx上传目录无执行权限的设置方法
我们来看俩段通常对上传目录设置无权限的列子,配置如下: 复制代码 代码如下: <Directory "/var/www/upload"> <FilesMatch ".php"> Order Allow,Deny Deny from all </FilesMatch> </Directory> 还有网上那个对nginx上传目录无执行权限 复制代码 代码如下: location ~ ^/upload/.*\.(php|ph
-
nginx设置上传目录无执行权限的方法
nginx上也很简单,我们使用location..如下: 复制代码 代码如下: location ~ ^/upload/.*\.(php|php5)$ { deny all; } 其中upload换为你要设置的目录名字 这条规则的含义是匹配请求连接中开头是/upload/,中间匹配任意字符,结尾匹配.php或者.php5的页面,最后利用deny all禁止访问,这样就防止了上传目录的脚本执行权限
-
PHP上传目录禁止执行php文件实例讲解
导读: 禁止上传目录运行php等可执行文件,可以从一定程度上增加网站的安全性.之前我二次开发过别人开源的一个Thinkphp项目,我更换过Thinkphp内核,也检查过有没有后门和木马,感觉挺安全的,但后面还是被彩票平台篡改了首页,我没有仔细推敲和研究别人是怎么做到的,而是直接删掉了整个项目,对于不安全的源代码,我都是直接舍弃不要.后来想了想,应该是被上传了后门文件,然后shell提权修改了首页文件.为了解决这种安全隐患问题,我服务器安装了防篡改系统,同时禁止在上传目录里执行php文件. 需要防
-
nginx禁止dedecms目录php执行权限
复制代码 代码如下: location ~* ^/(data|uploads|templets|special|html|erwe)/.*\.(php|php5)${deny all;}
-
nginx上传文件大小报错500的解决办法
nginx上传文件大小报错500的解决办法 采用nginx作反向代理,出现了一个诡异的问题,小文件可以提交,大文件会报500内部错误.这个是什么原因导致的呢? 查wiki可知,上传文件大小相关的有三个配置 client_body_buffer_size 配置请求体缓存区大小, 不配的话, client_body_temp_path 设置临时文件存放路径.只有当上传的请求体超出缓存区大小时,才会写到临时文件中 client_max_body_size 设置上传文件的最大值 所以查出来,问题出现的原
-
Apache 文件上传与文件下载案例详解
写一个Apache文件上传与文件下载的案例:以供今后学习 web.xml配置如下: <span style="font-family:SimSun;font-size:14px;"><?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns=&
-
Nginx 上传大文件超时解决办法
Nginx 上传大文件超时解决办法 情况如下:用nginx作代理服务器,上传大文件时(本人测试上传50m的文件),提示上传超时或文件过大. 原因是nginx对上传文件大小有限制,而且默认是1M.另外,若上传文件很大,还要适当调整上传超时时间. 解决方法是在nginx的配置文件下,加上以下配置: client_max_body_size 50m; //文件大小限制,默认1m client_header_timeout 1m; client_body_timeout 1m; proxy_connec
-
Nginx上传文件全部缓存解决方案
下面通过文字说明给大家详解Nginx上传文件全部缓存解决方案. 因为应用服务器(Jetty)里面实现了上传时写了进度条.经过缓存.就没法读取到进度了.此外,在Nginx处缓存文件,也降低了传输效率. nginx采用1.5.6. 后端采用nodejs+formidable的方式接受上传文件,本问题的对应与采用什么样的后端没太大关系,这里只是交代一下. 问题: 在前端页面上将文件上传,nginx没有将每一块收到的文件数据块转发给后端,而是全部缓存了下来,全部收取完成后再一块一块的转发给后端,显而易见
-
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上传文件大小的简单修改方法
原文链接:https://vien.tech/article/138 前言 用Laravel做了个支持markdown的博客(插个题外话:免费开源.欢迎使用VienBlog),并且支持文件上传功能,然后在上传文件的时候,发现超过1M的文件就上传失败,原因是Nginx限制了上传文件的大小,修改Nginx默认的上传文件大小限制就好了. 方法如下: 我们找到Nginx的配置文件 nginx -t nginx: the configuration file /etc/nginx/nginx.conf s
随机推荐
- 如何防范PowerShell代码注入漏洞绕过受限语言模式
- AngularJS的表单使用详解
- codeigniter实现get分页的方法
- Vuejs实现带样式的单文件组件新方法
- IOS实现自定义透明背景的tabbar
- javascript图片相似度算法实现 js实现直方图和向量算法
- bootstrap模态框远程示例代码分享
- js+html5操作sqlite数据库的方法
- js实现网页图片延时加载 提升网页打开速度
- 深入分析SQL Server 存储过程
- jQuery不间断滚动效果(模拟百度新闻支持文字/图片/垂直滚动)
- 基于jQuery实现多层次的手风琴效果附源码
- DWZ table的原生分页浅谈
- Android性能优化之利用Rxlifecycle解决RxJava内存泄漏详解
- Android 使用SharedPreferrences储存密码登录界面记住密码功能
- php 参数过滤、数据过滤详解
- JAVA反射机制中getClass和class对比分析
- Go语言中你所不知道的位操作用法
- Vue的elementUI实现自定义主题方法
- 解决layui中table异步数据请求不支持自定义返回数据格式的问题