Web应用安全之八种安全的文件上传方式(1)

为了让最终用户将
文件上传到您的网站,就像是给危及您的服务器的恶意用户打开了另一扇门。即便如此,在今天的现代互联网的Web应用程序,它是一种常见的要求,因为它有助于提高您的业务效率。在Facebook和Twitter等社交网络的Web应用程序,允许文件上传。也让他们在博客,论坛,电子银行网站,YouTube和企业支持门户,给机会给最终用户与企业员工有效地共享文件。允许用户上传图片,视频,头像和许多其他类型的文件。498)this.w
idth=498;' onmousewheel = 'javascript:return big(this)' border="0" alt="
Web应用安全之八种安全的文件上传方式" width="274" height="184" src="http://s1.51cto.com/wyfs02/M02/2C/9F/wKioL1OP2AfR3-LXAADEeYUXRxA431.jpg" />向最终用户提供的功能越多,Web应用受到攻击的风险和机会就越大,这种功能会被恶意用户利用,获得到一个特定网站的权限,或危及服务器的可能性是非常高的。当在测试几个Web应用程序时,我们注意到,相当多的知名Web应用程序,不
具备安全的文件上传形式。这些漏洞很容易被利用,我们可以访问这些Web应用程序的服务器托管到文件系统。在这篇文章中,我们为您介绍8种常见的方式,我们遇到过的安全文件上传
表单。同时,还将展示一个恶意的用户,可以
轻松地绕过这些安全措施。案例1:没有任何验证的简单文件上传表单一个简单的文件上传表单通常包含一个HTML表单和
PHP脚本。HTML表单的形式呈现给用户,而需要文件上传功能的PHP脚本中包含的代码。这种形式和PHP脚本下面是一个例子:HTML Form:viewsource <formenctype="multipart/form-data"action="uploader.php"method="POST"><inputtype="hidden"name="MAX_FILE_SIZE"value="100000"/>Chooseafiletoupload:<inputname="uploadedfile"type="file"/><br/><inputtype="submit"value="UploadFile"/></form>PHP Code:<?php $target_path="uploads/"; $target_path=$target_path.basename($_FILES['uploadedfile']['name']); if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'],$target_path)){ echo"Thefile".basename($_FILES['uploadedfile']['name'])."hasbeenuploaded"; echo"Therewasanerroruploadingthefile,pleasetryagain!"; }else{ } ?>当PHP接收POST请求且编码类型是multipart/form-data,它会创建一个临时文件名随机的临时目录中(
例如/ var/tmp/php6yXOVs)。 PHP也将填充全局数组$_FILES上传的文件的信息:$_FILES['UploadedFile的']['名称']:在客户机上的文件的原始名称 $_FILES['UploadedFile的']['类型']:文件的MIME类型 $_FILES['UploadedFile的']['
大小']:文件的大小(以字节为单位) $_FILES['UploadedFile的']['不对tmp_name']:上传的文件存储在服务器上的临时文件名。PHP 函数move_uploaded_file将用户提供的临时文件移动到一个位置。在这种情况下,目的地是服务器根目录以下。因此,文件可以使 用的URL,如:http://www.domain.tld/uploads/uploadedfile.ext访问。在这个简单的例子中,有允许上传 的文件类型没有限制,因此攻击者可以上传一个PHP或NET带有恶意代码的文件,可导致服务器妥协。这可能看起来像很幼稚的例子,但我们在一些Web应用中没有遇到这样的代码。 1 2 3 4 5 下一页>>查看全文 内容导航第 1 页:简单文件上传表单 第 2 页:Mime类型验证 第 3 页:双扩展名 第 4 页:通过.htaccess保护上传文件夹 第 5 页:推荐的解决方案 原文:Web应用安全之八种安全的文件上传方式(1) 返回网络安全首页

时间: 2024-11-05 10:27:28

Web应用安全之八种安全的文件上传方式(1)的相关文章

常用Web文件上传方式 JspSmartUpload上传文件

http://www.ajava.org/thread-20-1-1.html

php文件上传$_FILES move_uploaded_file详细说明

第一种比较简单就是files利用index.php教程接入值就成了,没经过判断,都会用到move_uploaded_files与files[]全局变量如下 第一个参数是表单的 input name,第二个下标可以是 "name", "type", "size", "tmp_name" 或 "error".就像这样: $_files["file"]["name"] -

php中实现图片文件上传程序代码

我们先来看一下项目结构图与数据库结构图吧 项目结构: 运行效果:   up.html 简单的上传表单文件  代码如下 复制代码 <form action="up.php" enctype="multipart/form-data" method="post"      name="uploadfile">上传文件:<input type="file" name="upfile&q

PHP 图片文件上传实现代码_php实例

为了网站的安全,肯定不让上传php文件,如果有人进入你的后台,上传了一个php文件,你的网站源码,全部救变成他的了,直接打包看你的代码.所以一定要控制上传的目录与文件类型,一般只可以上传图片. 创建一个文件上传表单 允许用户从表单上传文件是非常有用的. 请看下面这个供上传文件的 HTML 表单: 复制代码 代码如下: <html> <body> <form action="upload_file.php" method="post" e

php简单文件上传$_FILES与move_uploaded_file实现文件上传

php教程简单文件上传$_files与move_uploaded_file实现文件上传 $_files["file"]["name"] - 被上传文件的名称 $_files["file"]["type"] - 被上传文件的类型 $_files["file"]["size"] - 被上传文件的大小,以字节计 $_files["file"]["tmp_name&

php文件上传类 php文件上传代码

下面的这个PHP文件的上传类主要是用来上传文件的,包括图片,视频,word文档的,其实这里建议用来处理图片,推荐的主要原因是这个类很规范,基本上所有的上传参数都可以在类里面进行定义,而不需要在 php.ini 里面进行修改  代码如下 复制代码 <?php class files{ /** * upload * * 文件上传 * * @param String $path e.g. Zend_Registry::get('upload') * @param Array $files e.g. $

PHP把文件上传到服务器源代码

通过 PHP,可以把文件上传到服务器. 创建一个文件上传表单 允许用户从表单上传文件是非常有用的. 请看下面这个供上传文件的 HTML 表单: <html> <body> <form action="upload_file.php" method="post" enctype="multipart/form-data"> <label for="file">Filename:&l

多文件上传

上传 ---StyleSheet.css .bluebutton{ background-color:LightSteelBlue; border-style:solid; border-width: 1px; border-color: LightSkyBlue;} ---Attachme.aspx <%@ Page language="c#" Codebehind="Attachme.aspx.cs" AutoEventWireup="false

jQuery不使用插件及swf实现无刷新文件上传_jquery

文件上传是网站常用的功能,例如附件或图片的上传功能,解决方案也有很多,我们今天介绍一种通过jQuery无刷新的文件上传方式. 首先,我们在页面中放一个form,用来上传文件: 复制代码 代码如下: <form id="myForm" method="post" action="/asyncFileUpload/UploadHandler.ashx"     enctype="multipart/form-data" ta