手机如何看python文件大小_如何安全地检查上传文件的大小?(How to check size of uploaded file safely in bottlepy?)...
如何安全地检查上传文件的大小?(How to check size of uploaded file safely in bottlepy?)
我真的害怕read()操作,因为它使用内存。 例如,任何人都可以通过上传1GB文件来对服务器进行DDoS,对吗?
name = request.forms.get('name')
data = request.files.get('data')
if name and data.file:
raw = data.file.read() # This is dangerous for big files
filename = data.filename
return "Hello %s! You uploaded %s (%d bytes)." % (name, filename, len(raw))
有没有安全的解决方案来获取上传的文件大小? 一个猜测是从文件系统获取文件大小; request.files.get('data')可能存储在临时文件的某个地方?
I'm really afraid of that read() operation because it uses memory. For instance, anybody could DDoS my server by uploading a 1gb file, correct?
name = request.forms.get('name')
data = request.files.get('data')
if name and data.file:
raw = data.file.read() # This is dangerous for big files
filename = data.filename
return "Hello %s! You uploaded %s (%d bytes)." % (name, filename, len(raw))
Is there any safe solution to get the uploaded file size? One guess would be to get file size from the file system; request.files.get('data') is probably stored somewhere in temp file right?
原文:https://stackoverflow.com/questions/11218422
更新时间:2020-01-20 23:45
最满意答案
你能否检查一次是否可以读取大块数据。
如果这是可能的,那么:
name = request.forms.get('name')
data = request.files.get('data')
raw = ""
if name and data.file:
while True:
datachunk = data.file.read(1024)
if not datachunk:
break
raw = raw + datachunk
filename = data.filename
return "Hello %s! You uploaded %s (%d bytes)." % (name, filename, len(raw))
如果这是可能的,那么你应该也可以添加一个跟踪机制来确定你想要读取的文件大小,如果超过这个大小,就会中止这个操作。
这只能解决DDOS的一种可能的方式。
Can you check if you can read chunks of data, one at a time.
If this is possible then:
name = request.forms.get('name')
data = request.files.get('data')
raw = ""
if name and data.file:
while True:
datachunk = data.file.read(1024)
if not datachunk:
break
raw = raw + datachunk
filename = data.filename
return "Hello %s! You uploaded %s (%d bytes)." % (name, filename, len(raw))
If this is possible, then you should be able to also add a tracking mechanism on how large a file you want to read and if exceeded abort this operation.
How ever this solves only one of the possible ways of DDOS.
2012-07-10
相关问答
关于这个问题,有一个名为file-uploader的插件可以解决问题。 使用此插件,您可以在config.groovy中定义一些限制。 这是一个例子: fileuploader {
avatar {
maxSize = 1024 * 256 //256 kbytes
allowedExtensions = ["jpg","jpeg","gif","png"]
path = "/tmp/avatar/"
}
docs {
...
您可以使用commons-fileupload设置setSizeThreshold 这是相同的例子 注意: * 如果不直接将其直接发送到服务器,您无法确定文件大小 * You can set setSizeThreshold using commons-fileupload Here is example of the same Note: *You can't determine the file size without streaming it up directly to server*
从PHP 4.2.0开始,PHP会返回适当的错误代码以及文件数组。 所以, <?php
if ($_FILES['txtImage']['error'] === UPLOAD_ERR_NO_FILE) {
$msg .= "Opss, you forgot the image.
";
}
?>
http://php.net/manual/en/features.file-upload.errors.php Since PHP 4.2.0, PHP returns an approp
...
使用._size文件属性 if thisFile._size > 5242880:
return "This file is more than 5mb"
._size以字节表示。 5242880 - 5MB def handle_uploaded_file(thisFile):
if thisFile._size > 5242880:
return "This file is more than 5mb"
else:
with open('s
...
if(!file_exists($_FILES['name_of_field']['tmp_name'])
{
# No file uploaded
}
if(!file_exists($_FILES['name_of_field']['tmp_name'])
{
# No file uploaded
}
问题在于我试图从使用jQuery的文件输入中选择文件的方式。 以下是一些示例解决方案: 如果您有一个文件输入,并且用户只能选择一个文件: // Get the file
var file = $('input[type="file"]').get(0).files[0];
// File size, in bytes
var size = file.size;
如果您有一个文件输入,请选择多个文件: // Get an array of the files
var files = $('inp
...
保存到服务器之前检查文件大小。 (正在上传时检查文件大小) PHP在解码POST请求时正在检查最大文件大小。 它是在php.ini中使用upload_max_filesize 。 通常大约10MB左右。 但您可以通过简单的测试轻松设置特定于应用程序的最大文件大小: if ($_FILES["image"]["size"] >= 500000) {
然后相应地做出反应并打印错误消息。 对于个人资料图片和头像,500K应该足够了。 扫描文件内容 您需要在服务器上安装病毒扫描程序。 有各种各样的可用。
...
我发现它,正确的组合原来是参数dFileSize和事件 - postWebfileCreation I found it, the right combination turned out to be the parameter dFileSize and the event - postWebfileCreation
你能否检查一次是否可以读取大块数据。 如果这是可能的,那么: name = request.forms.get('name')
data = request.files.get('data')
raw = ""
if name and data.file:
while True:
datachunk = data.file.read(1024)
if not datachunk:
break
raw = raw + d
...
问题是在运行服务器时使用reloader=True 。 将此设置为False可防止出现第二个窗口。 The issue was using reloader=True when running the server. Setting this to False prevents the second window from appearing.
手机如何看python文件大小_如何安全地检查上传文件的大小?(How to check size of uploaded file safely in bottlepy?)...相关推荐
- 如何上传html验证文件大小,html5 实现客户端验证上传文件的大小(简单实例)
在HTML 5中,现在可以在客户端进行文件上传时的校验了,比如用户选择文件后,可以 马上校验文件的大小和属性等.本文章向码农介绍html5 如何实现客户端验证上传文件的大小,感兴趣的码农可以参考一下. ...
- php上传文件大小读取,怎么修改php上传文件的大小限制?
修改php上传文件大小限制的方法:首先打开php.ini配置文件:然后分别查找并修改"post_max_size"项."upload_max_filesize" ...
- springboot调用python脚本_Springboot实现上传文件接口,使用python的requests进行组装报文上传文件的方法...
记录瞬间 近段时间使用Springboot实现了文件的上传服务,但是在使用python的requests进行post上传时,总是报错. 比如: 1.Current request is not a m ...
- python 全栈开发,Day86(上传文件,上传头像,CBV,python读写Excel,虚拟环境virtualenv)
python 全栈开发,Day86(上传文件,上传头像,CBV,python读写Excel,虚拟环境virtualenv) 一.上传文件 上传一个图片 使用input type="file& ...
- 在上传文件时限制上传文件的大小,并捕捉超过文件大小限制的异常
在上传文件时,我们可以在web.config里设置允许上传的文件大小.但是,当上传的文件超过设置的限制时,在Application_Error事件里是无法捕捉到这个异常的.下面,就是捕捉上传文件超过设 ...
- python的requests库发送携带上传文件的接口_python requests 库请求带有文件参数的接口实例...
python requests 库请求带有文件参数的接口实例 有些接口参数是一个文件格式,比如fiddler 抓包参数如下显示 这个接口的 form-data fiddler 显示的和不带文件参数的接 ...
- python socketserver实现服务器端执行命令 上传文件 断点续传
1 基于socketserver在服务器端实现执行cmd命令和上传文件(断点续传) 2 3 #server: 4 5 #!/usr/bin/env python 6 # -*- coding:utf- ...
- ashx获取input file 文件_通过Ajax方式上传文件(input file),使用FormData进行Ajax请求...
一直以来上传文件都使用的是别人的组件,今天看下无刷新上传内部具体的做法.上传文件可以使用form的形式来上传,也可以通过构造formData使用ajax来上传文件: 上传图片 $(function ( ...
- aws php 上传文件 限制大小_如何压缩PDF文件大小,满足各种上传大小要求
介绍 今天我们来说一个小技巧,就是对PDF文件大小的压缩.那么这个问题是怎么来的呢,我们在系统上传PDF文件的时候,由于系统限制,PDF大小受到了限制,我们需要对PDF进行压缩小一点进行上传,才能满足 ...
最新文章
- linux常用的内核镜像格式
- cocos2d-x初探学习笔记(16)--LayerColor
- linux共享库的运行方式,Linux下动态共享库加载及使用详解
- java中Date()类型输入数据的处理
- React开发(109):引用错误 报错
- TensorFlow相关
- Node项目实战开发-博客系统
- 滴滴货运首批试点城市揭晓 23日起在成都、杭州上线
- java单例模式_java设计模式-单例模式
- 显卡bind 驱动 linux,Linux 配置bind 服務
- vue-cli入门(四)——vue-resource登录注册实例
- Linux实验——缓冲区溢出漏洞实验
- GRAPH ATTENTION NETWORKS 学习翻译
- HP M280 鼠标驱动
- python爬取去哪儿网机票_去哪儿网机票爬虫
- 读July关于概率论所想
- 大前端 HTML基础
- ModuleNotFoundError: No module named ‘typing_extensions‘
- 基于Blackfin处理器的嵌入式数码相框
- 花粉的基本功效(收藏)
热门文章
- TensorFlow 学习(十五)—— tensorflow.python.platform
- 图案、标签、logo
- 用几何(解析几何)方法求解概率问题
- 二分查找 —— 从三分支到二分支
- 【学习 Opencv】—— 访问摄像机和视频
- WinEdt LaTex(一)—— hello world!
- 3升5升得4升——倒水问题的万能解法(扩展欧几里得算法)
- latex 基本用法
- php object 对象不存在。增加对象_《相亲者女》:找一个匹配的对象,但永远不存在...
- sql server与java实例_史上最全:PostgreSQL DBA常用SQL查询语句(建议收藏学习)