0

我需要在我的网站上将上传的文件在几分钟内公开可用,但要确保它的安全。创建一个临时的长随机命名文件夹就足够了吗?

PHP 脚本将创建该文件夹,使其可用,然后将其删除。我还将每 15 分钟运行一次 cron-job(在我的共享主机允许的频率范围内)以删除超过 15 分钟的任何文件夹,以防脚本在删除之前中止。

提前致谢。

编辑对不起,应该提供更多信息。该文件正在使用 cloud-api servcie 进行转换,他们需要文件的 URL 来转换其格式。我想我能找到 api 提供者的 IP 吗?

4

2 回答 2

1

我建议您使用readfile用于加载文件并将其发送给用户的 php 文件,而不是您可以检查登录/会话信息以及用户是否有权下载文件。您无需公开文件即可直接下载。

参见示例 1(使用 readfile() 强制下载)

于 2013-09-27T08:17:28.823 回答
1

“足够”不是我们可以帮助您的——在安全工程中,通常通过“攻击者愿意花费多少金钱/时间来获取此信息/访问权限?”来评估这一点。

如果您的文件包含比尔盖茨的银行账户详细信息,那可能需要大量的时间/金钱,而您的解决方案将严重不足。

如果您的文件包含小猫的图片,那么攻击者愿意花费的精力可能很少,您可能会侥幸逃脱。

您可以做的另一件事来评估您的安全性是想象攻击者破坏它需要什么。在您的情况下,攻击者首先需要知道您用于共享此数据的过程;他们可以通过心怀不满的员工,或通过配置错误的 robots.txt 文件,或通过嗅探您与数据客户端之间的 IP 流量,或通过阅读 Stack Overflow 问题来获取此信息。

那么,您如何防范呢?IP 嗅探可以通过使用 SSL 来缓解 - 即使攻击者可以嗅探流量,他们也无法弄清楚您在做什么。Robots.txt 是您需要自己管理的内容。心怀不满的员工是最有可能的传播媒介——因此,尽可能将此信息保留给尽可能少的群体,并考虑 NDA 和其他合法行为。

一旦他们制定了你的计划,他们将如何渗透它?明显的攻击向量是 IP 嗅探和猜测 URL 生成方案,然后使用机器人进行详尽搜索,或者制定随机名称生成算法。哦,如果您将该 URL 提供给其他人,如果他们可以拦截该通信,他们也可以窃取您的数据。

为了防止 IP 嗅探,您需要再次使用 SSL。为了防止穷举搜索,最好的(虽然不是唯一的)解决方案是实施 IP 限制,因此只有已知主机才能从该目录请求页面。为了防止随机算法猜测,您需要使用强大的随机算法 - 阅读此内容,它并不像听起来那么容易。

最后,如果攻击者设法通过这些安全层,您可能会加密数据,并向客户端颁发密钥。

您采取多少这些步骤取决于您 - 请记住,如果存在其他漏洞使攻击者可以轻松访问您的系统,那么这些都不能保证安全。

于 2013-09-27T08:43:06.847 回答