ftp服务器如何设置指定用户访问(FTP 服务器关于权限的问题)
ftp服务器如何设置指定用户访问
FTP 服务器关于权限的问题很多电影网站,论坛或其它机构为了方便会员或成员上传电影或者交流文件,都允许用户的上传权限,因为只有允许这个权限,用户才可以上传文件,但这个权限在允许断点再传的ftp服务器中,可以导致很大的问题出来。
允许断点再传的ftp服务器程序,都必须支持一个“Rest”的命令,如果这个命令是用在上传命令前(send命令), 是告诉ftp服务器我要上传的文件会是从ftp服务器中存在的那个文件的什么位置中开始写。
例子:
假设ftp服务器中存在一个文件Readme.txt,文件大小为1000 bytes,连接上这个ftp服务器(假设我有写权限,ftp服务器是支持断点再传的),我本地中也有一个叫Readme.txt的文件,文件大小为500 bytes。好了,我开始做坏事。
1、连接上这个ftp服务器(用系统自带的 ftp://ftp.exe/,在内网的可能无法使用,因为 ftp://ftp.exe/用的是port模式)
2、dir(查看Readme.txt大小,确定了是1000 bytes)
3、quote rest 1000(告诉ftp服务器我将要传送的文件是从文件位置1000开始)
4、send Readme.txt
5、dir(再次查看Readme.txt大小,现在Readme。txt变成1500 bytes了)
为什么Readme.txt会变大了?很简单,因为我本地的那个Readme.txt的500字节上传成功,并写入到ftp服务器中存在的那个1000 bytes的Readme.txt文件中了。问题是出在第二条命令,如果没有第二条命令,我的第4个命令(Send Readme.txt),就会得到一个Permission Deny的错误,第二条命令是让ftp服务器信任我们将要进行一个断点再传的操作,如果没有第二条命令,ftp服务器将以为我们进行的是一个复盖原文件的操作(复盖原文件操作需要另外的权限才可以进行)。
说到这里,大家应该明白了主题的意思了吧,通过很简单的操作,任何具有写权限的用户,都可以改动其它用户上传的文件,单是这一点,就存在很大的安全漏洞了。如果上传的是重要文件,随意的修改可以令文件完全破坏了;如果是可执行文件或一些zip或rar文件,会不会有些熟悉各种文件结构的天才疯子,将一些恶意代码也加到那些文件,令执行者系统受到破坏或者执行了他们的后门代码或其它,由于本身对于这些文件结构并不熟悉,我只说这是一个未知之数。
但在电脑的世界中,很多不可能的事最后都被创造成可能,所以我无法下定论。但单是能破坏到文件这一点,已是很具破坏性了,想想一个500M的影视文件,被人多加了字节进去的话,估计是无法再被观看的了,播放这些文件的程序一般都会说不是合法的影视文件,无法播放等等。至于zip,rar等文件,winzip或winrar肯定会说压缩文件已遭到破坏,crc检验码不对等等的错误。
这个问题只是在允许断点再传的FTP服务中存在,但现在90%的FTP服务程序都是允许断点再传的,所以这问题在普遍的FTP服务器都会存在。
防范方法:
如果一定需要给用户上传权限的话,最好的防范方法是每个用户都给他建立一个目录,将那个用户的权限完全锁在这个目录内,那么用户就没有权限可以查看其它用户的目录,也就是说无法造成以上所说的破坏。
以上所说的在Serv-U V4.0中测试过,测试平台是Win 2K Server。如果其它ftp服务程序不存在这种问题,那不在此文章讨论范围内。 现在windows系统中架设ftp服务器,用得最多最流行的还是Serv-U,所以管理员们要多留心了。这文章并不是要教人做坏事,如果你用这种方法去破坏ftp服务器的文件,唯一要负责任的人是你。引用一句古龙小说中的话:“刀本身并没有错,错的是拿它的手”。
- docker进入容器的方法(docker容器里面的root权限获取方法)
- mysql 用户权限配置(详解MySQL 用户权限管理)
- dedecms怎么使用(DEDECMS网站系统目录权限设置教程)
- SQL Server中对列的权限设置
- sql server 管理日志可以删除吗(SQL Server查看login所授予的具体权限问题)
- apache安全配置(apache在win2003下的安全设置配合文件夹权限目录,很好很安全)
- docker socket文件丢失(解决vscode docker插件docker.socket权限问题)
- dedecms权限调整(dedecms当前位置导航去掉链接的实现方法)
- dedecms注册怎么给权限(织梦DedeCms系统未审核文档禁止动态浏览修改方法view.php)
- 无法访问docker容器内的端口(docker容器中切换用户,提示权限不足的解决)
- 阿里云怎么开启tomcat权限(腾讯云服务器tomcat端口无法访问的解决方法)
- laravel 权限管理(修改Laravel自带的认证系统的User类的命名空间的步骤)
- serv-u设置文件夹权限(serv_U 域离线 解决方法)
- laravel权限控制(laravel-admin 在列表页添加自定义按钮的例子)
- servu权限设置(Serv-U防溢出提权攻击解决设置方法)
- 阿里云服务器ecs过期保留多久(阿里云ECS Windows服务器C盘权限被删除还能还原吗?)
- 被鉴定的古董价值300万 当心,你可能遇到诈骗了(被鉴定的古董价值300万)
- 英语难学吗(初中英语难学吗)
- 如何追女孩子(如何追女孩子的技巧和方法)
- 是不是快乐全被你拿走了(而是你得到的)
- 世界上只有妈妈好(世界上只有妈妈好的歌词)
- 为什么现在社会越来越卷了(现在社会为什么发展那么快呢)
热门推荐
- dede织梦的后台如何调整和使用(织梦DEDECMS中增加父栏目调用,以及多级支持currentstyle的方法)
- sql中having用法(sql中的 where 、group by 和 having 用法解析)
- Sql Server系统数据库的作用
- nginxmac启动脚本(Mac M1 Nginx 配置多站点的实现)
- python线程池如何实现同步(Python mutiprocessing多线程池pool操作示例)
- php漏洞处理方法(php解决安全问题的方法实例)
- php中变量定义规则(PHP中__set实例用法和基础讲解)
- django中filter的参数(详解django2中关于时间处理策略)
- apache架构设计参数详解(Apache之AllowOverride参数使用说明)
- python函数基本使用(Python3中exp函数用法分析)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9