gpt4 book ai didi

python - 如何在 bottlepy 中安全地检查上传文件的大小?

转载 作者:太空狗 更新时间:2023-10-30 01:39:08 25 4
gpt4 key购买 nike

我真的很害怕那个 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') 可能存储在临时文件中的某处,对吧?

最佳答案

你能检查一下你是否可以读取数据 block ,一次一个。

如果可能的话:

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的一种可能方式。

关于python - 如何在 bottlepy 中安全地检查上传文件的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11218422/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com