FTP服务器关于断点续传权限的防范问题
假设ftp服务器中存在一个文件Readme.txt,文件大小为1000bytes,连接上这个ftp服务器(假设我有写权限,ftp服务器是支持断点再传的),我本地中也有一个叫Readme.txt的文件,文件大小为500bytes。好了,我开始做坏事。
1、连接上这个ftp服务器(用系统自带的ftp://ftp.exe/,在内网的可能无法使用,因为ftp://ftp.exe/用的是port模式)
2、dir(查看Readme.txt大小,确定了是1000bytes)
3、quoterest1000(告诉ftp服务器我将要传送的文件是从文件位置1000开始)
4、sendReadme.txt
5、dir(再次查看Readme.txt大小,现在Readme。txt变成1500bytes了)
为什么Readme.txt会变大了?很简单,因为我本地的那个Readme.txt的500字节上传成功,并写入到ftp服务器中存在的那个1000bytes的Readme.txt文件中了。问题是出在第二条命令,如果没有第二条命令,我的第4个命令(SendReadme.txt),就会得到一个PermissionDeny的错误,第二条命令是让ftp服务器信任我们将要进行一个断点再传的操作,如果没有第二条命令,ftp服务器将以为我们进行的是一个复盖原文件的操作(复盖原文件操作需要另外的权限才可以进行)。
这个问题只是在允许断点再传的FTP服务中存在,但现在90%的FTP服务程序都是允许断点再传的,所以这问题在普遍的FTP服务器都会存在。
防范方法:
如果一定需要给用户上传权限的话,最好的防范方法是每个用户都给他建立一个目录,将那个用户的权限完全锁在这个目录内,那么用户就没有权限可以查看其它用户的目录,也就是说无法造成以上所说的破坏。
相关推荐
java实现FTP多线程断点续传
用apache的FTP实现断点续传 - janestone的专栏 - 博客频道 - CSDN.NET (2012年5月21日) java实现FTP多线程断点续传,上传下载! - java学习与交流 - j2ee学习网 - j2ee学习网 (2012年5月21日) 用 Java 实现断点续传 ...
c#上传下载ftp(支持断点续传) 代码完全通俗易懂 注释完整
java相关的 ftp知识 如:ftp服务器、ftp主被动通讯模式、断点续传、单个文件多线程下载
FTP上传(断点续传)更新进度条 公司项目第一个版本
java实现ftp断点续传,上传文件到FTP服务器,支持断点续传,同时支持LINUX主机,代码里面包括了比较多的java网络操作类,比如连接FTP的常规类、递归创建远程服务器目录 上传文件到服务器,新上传和断点续传操作,远程...
利用libcurl实现ftp断点续传,文件压缩包里面只有dll,lib,.h和cpp文件,不是工程。
java FTP多线程 批量 断点续传,使用 1.建一个支持多线程FTP服务端; 如:xxftp有Windows和Linux版本; 2.建一个项目导入文件测试;
ftp实现断点续传,ftp支持上传续传 ftp断点续传基于c语言的实现。
Java上传文件到FTP服务器,支持断点续传
点量Http、FTP多线程断点续传下载组件(下载DLL)的开发目的是让用户可以无需关心Http/FTP协议的具体细节,只需要几十行甚至几行代码,便可以实现一个功能完善的Http/FTP下载软件。点量Http/FTP下载组件(DLL)支持...
上传文件到服务器,新上传和断点续传 远程文件名,在上传之前已经将服务器工作目录做了改变 本地文件File句柄,绝对路径 需要显示的处理进度步进值 断点续传点
java实现ftp断点续传
实现FTP上传,暂停断点续传等功能。已经测试过了,可以使用。希望大家多给点意见,是功能更完善。
c#上传下载ftp(支持断点续传) .doc
本源代码是关于ios 中ftp功能的实现,支持断点续传,体现在downloaddelegate.h文件中
如何设计FTP断点续传 思路
精炼的内容,看过基本可以完成FTP断点续传的编程。