gpt4 book ai didi

php - 让用户上传大文件到网站

转载 作者:可可西里 更新时间:2023-10-31 22:45:50 25 4
gpt4 key购买 nike

所以我需要一点建议。我正在建立一个仅供学术界使用的网站,仅限于极少数人。本网站的唯一目的是作为文件上传的 GUI。这些文件的大小通常在 10-12GB 之间。

通过研究,我发现我可以使用 php 脚本上传文件并更改 php.ini 中的最大文件上传大小(但我找不到最大文件上传大小限制)。我有几个问题。

1) 我是否需要想出一种方法来保持网站和用户之间的连接打开以避免连接超时等问题?如果是这样,在服务器端执行此操作是否足够?还是这些用户将使用的网络浏览器也存在问题(网络浏览器是否使您的连接超时)? --- 我问这个是因为这些上传将花费大量时间。

2) 我必须考虑哪些安全问题?到目前为止,我发现并考虑了以下内容:

  1. 限制仅从多个子网(我希望的学术用户)访问网站

  2. 将要上传到网站的文件是一种特殊格式,由独特的 header 组成)——因此会检查这些 header 。

  3. 使用 .htaccess 禁用 CGI 执行

  4. 将所有上传的内容移到 www 根文件夹之外

  5. 可能会找到一个反病毒检查这些文件

  6. 最初,所有这些用户都将进行身份验证以访问该网站——这是我在第一个问题中也必须考虑的问题——他们可以保持登录多长时间以及我如何控制它?

本网站的安全方面对其开发至关重要,当您处理 12 GB 的文件时,这是一个非常棘手的问题。

这些是我认为难以实现的一些事情,但我相信还有更多。你们认为我还应该考虑什么?另外如果还有其他实现方法,请不要犹豫。

附加信息:

  • 截至目前,这些用户使用 scp 将文件上传到此服务器
  • 这些用户受到我所在社区的高度信任,但无论如何,安全是这个社区的第一座右铭——很少有东西向公众开放,而且存储在这些服务器上的一些信息不能泄露
  • 要上传到服务器的文件基本上是真实人物的 secret 数据——所以我必须考虑诸如数据包嗅探之类的事情

谢谢大家,我知道这很难接受,但我们将不胜感激任何帮助。

最佳答案

您不可能通过 PHP 上传这么大的单个文件。不管您投入多少服务器资源(内存)(相信我,您需要很多!),PHP 中有一个限制会阻止您这样做。

在 php.ini 中,有一个名为“post_max_size”的变量,它会影响您可以发送到服务器的最大数据量。该变量是一个无符号的 32 位整数,这意味着您不能超过 4,294,967,295。

一个好的解决方案是使用Flash将文件分割成几个小部分,然后进行文件上传。我为您找到了一个完全可以执行此操作的库:http://www.blog.elimak.com/2011/08/uploading-large-files-with-flash-splitting-the-bytearray-in-chunks/

如果您在 PHP 中遇到内存问题,只需将 block 变小即可。

祝你好运!

编辑:要回答您的第二个问题,您已经了解了其中的大部分内容。如果您担心数据可能在途中被劫持,请使用 SSL 进行传输。至于身份验证,请考虑使用 OAuth,并确保在传输不活动时撤销用户的访问 token 。将 php_flag engine off 添加到您的 .htaccess 文件中,以防止上传的 PHP 文件运行。定期运行服务器病毒扫描程序也不是坏事 :)

关于php - 让用户上传大文件到网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11017695/

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