允许用户从URL保存文件的安全问题

时间:2013-11-16 18:10:22

标签: php

我正在开发一个脚本,以便在给定URL的情况下从用户处获取小尺寸文件(小于1 MB)并将其保存在我的服务器上。

我主要担心的是,如果有人试图上传大型文件,例如 1 GB 文件甚至更大?如果它是一个大文件,我如何控制文件抓取?

我在网上尝试了一些答案,但所有答案都处理整个文件。对于700 MB视频文件,它花了几分钟,这是否意味着该过程占用了我的服务器资源?

如果黑客不断向大型文件发布网址,那么这些进程会占用我的服务器资源,而且我会丢失访问者。

有人可以就此提出建议吗?

3 个答案:

答案 0 :(得分:1)

您可以在此处设置上传文件大小。喜欢这个

<?php
ini_set('post_max_size', '20K'); // If you need it like 10 MB , Set is as 10M
ini_set('upload_max_filesize', '20K'); 

答案 1 :(得分:1)

这应该可以解决问题。不能上传大于1兆字节的文件

if($_FILES['file']['size'] < 1048576) { // This is one megabyte (in bytes)
    // the file is within size restriction, continue
} else {
    // File is too large, return an error
}

然后你可以在上传之前使用一些javascript来测试文件大小,但请记住你不能依赖它来保证安全。

答案 2 :(得分:-1)

Ninja编辑:出于安全目的,这不是一个好的答案

您可以在javascript中检查文件大小,因此您无需将其发送到服务器。您可以在此处找到完整说明:JavaScript file upload size validation