视频: 41 AspNet教程 安全的文件上传和下载 2024
Web应用程序通常允许用户以某种原因上传文件。你需要确保这些上传是安全的。例如,某些留言板允许用户上传显示在每个用户帖子旁边的小图片或头像。其他应用程序允许您上传数据文件进行分析。
你可以使用PHP内置的fopen()函数,它会自动打开一个文件或URL的流,允许用户上传文件。不幸的是,这种方法已经成熟,可以被恶意用户利用,可以使用它将远程服务器上的文件上传到Web服务器上。
<! --1 - >防止这种类型的利用需要你在php中禁用两个设置。 ini:register_globals和url_fopen。禁用这些设置可防止用户使用PHP的内置文件上传,而无需明确启用该功能。
在php中禁用这两个函数之后。 ini,你仍然需要允许用户上传文件。使用PHP的FTP函数集,这是一个比fopen()更安全的方法,允许用户上传文件。
您可以非常直观地使用FTP功能。首先,建立连接,然后上传所需的文件,最后关闭连接。以下是如何在PHP中使用FTP功能:
以下是最常见的FTP函数及其参数:
-
ftp_connect(string $ host [,int $ port [,int $ timeout]]) :< 连接到FTP服务器 - 在这种情况下,您的Web服务器。 <! ftp_login(resource $ ftp_stream,string $ username,$ string password)
: -
发送登录凭证到FTP服务器。 ftp_put(resource $ ftp_stream,string $ remote_file,string $ local_file,int $ mode [,int $ startpos]) :
-
将文件从本地机器上传到服务器。 ftp_get(resource $ ftp_stream,string $ local_file,string $ remote_file,int $ mode [,int $ resumepos]) :
-
从服务器获取文件并将其发送到本地机器。 ftp_close(resource $ ftp_stream) :
-
关闭到服务器的连接。 您需要尽快关闭FTP流;否则,你有一个开放的连接,容易被劫持。