Web应用系统安全开发课件:文件的上传.pptx
Web应用系统安全开发
文件的上传;
1.文件上传概述
?所谓文件上传,就是将客户端的文件复制到服务器端。有了文件上传的功能,用户不仅可以为网站动态添加附件,还可以实现网站中相关图片、Flash动画、声音文件等的动态更新。
?需要注意的是,在处理上传的文件时需要注意安全性问题,例如检查上传的文件类型、大小、重名等,以防止恶意上传的文件危害服务器的安全。;
?在HTML语言中,用input标记创建一个文件域,语法格式如下:
formaction=upload_file.phpmethod=postenctype=multipart/form-datalabelfor=file文件名:/label
inputtype=filename=fileid=file//br/br
inputtype=submitname=submitvalue=提交/
/form
?上述文件上传表单页面显示,如图所示;
3.创建文件上传脚本
?用户通过客户端浏览器的上传表单提交之后,PHP将会自动生成一个$_FILES数组,其中保存了上传文件的信息。
“upload_file.php”文件含有供上传文件的代码,示例如下
?php
if($_FILES[file][error]0)
{
echoError:.$_FILES[file][error].br/;
}
else
{
echoUpload:.$_FILES[file][name].br/;
echoType:.$_FILES[file][type].br/;
echoSize:.($_FILES[file][size]/1024).Kbbr/;
echoStoredin:.$_FILES[file][tmp_name];
}
?
?上述文件上传页面提交之后,通过该PHP代码,运行结果如图所示;
4.创建文件上传限制
?针对上面脚本,我们来增加对文件上传的限制,示例如下
?php
if((($_FILES[file][type]==image/gif“)||($_FILES[file][type]==image/jpeg)||($_FILES[file][type]==image/pjpeg))($_FILES[file][size]2000000))
{
if($_FILES[file][error]0)
{
echoError:.$_FILES[file][error].br/;
}
else
{
echoUpload:.$_FILES[file][name].br/;
echoType:.$_FILES[file][type].br/;
echoSize:.($_FILES[file][size]/1024).Kbbr/;
echoStoredin:.$_FILES[file][tmp_name];
}
}
else
{
echoInvalidfile;
}
?;
5.保存上传的文件
?要保存被上传的文件,我们需要把它拷贝到指定的位置,语法格式如下boolmove_uploaded_file(string$filename,string$destination);
例如:
move_uploaded_file($_FILES[myfile][tmp_name],uploads/index.txt);;
?php
if((($_FILES[file][type]==image/gif)||($_FILES[file][type]==image/jpeg)||($_FILES[file][type]==image/pjpeg))($_FILES[file][size]2000000)){
if($_FILES[file][error]0)
{
echoReturnCode:.$_FILES[file][error].br/;
}
else
{
echoUpload:.$_FILES[file][name].br/;
echoType:.$_FILES[file][type].br/;
echoSize:.($_FILES[file][size]/1024).Kbbr/;
echoTempfile:.$_FILES[file][tmp_name].br/;