我需要在我的网站上公布上传的文件几分钟,但保证其安全。创建一个临时的长随机命名文件夹是否足够?
PHP脚本将创建文件夹,使其可用,然后将其删除。我还会每15分钟运行一次cron-job(与我的共享主机一样频繁),在15分钟内删除任何文件夹,直到脚本中止,然后才能删除。
提前致谢。
编辑抱歉,shoud已经提供了更多信息。该文件正在使用cloud-api服务进行转换,他们需要文件的URL来转换它的格式。我想我能找到api提供商的IP吗?
答案 0 :(得分:1)
我建议你使用一个使用readfile
加载文件并发送给用户的php文件,而不是检查登录/会话信息以及用户是否有权下载文件。您不需要将该文件公开以供直接下载。
答案 1 :(得分:1)
“足够”不是我们可以帮助您的东西 - 在安全工程中,通常会通过“攻击者愿意花多少钱/时间来获取此信息/访问权限来评估这一点”。
如果您的文件包含比尔盖茨的银行帐户详细信息,那可能会花费大量的时间/金钱,而您的解决方案将非常不合适。
如果你的文件中包含小猫的图片,那么攻击者愿意花费的能量可能很少,你可能会侥幸逃脱。
您可以做的另一件事是评估您的安全性,想象一下攻击者可以采取什么措施来打破它。在您的情况下,攻击者首先需要知道您用来共享此数据的过程;他们可以通过心怀不满的员工,或通过错误配置的robots.txt文件,或通过嗅探您和您的数据客户端之间的IP流量,或通过阅读Stack Overflow问题来获取此信息。
那么,你怎么能防范呢?通过使用SSL可以减轻IP嗅探 - 即使攻击者可以嗅探流量,他们也无法解决您正在做的事情。 Robots.txt是您需要自己管理的东西。心怀不满的员工是最有可能的人 - 所以请尽量将这些信息保存在一个小组中,并考虑NDA和其他合法的人员。
一旦他们制定了你的计划,他们将如何渗透它?明显的攻击向量是IP嗅探,猜测URL生成方案,然后使用机器人进行穷举搜索,或者制定随机名称生成算法。哦,如果您将该URL提供给其他人,如果他们可以拦截该通信,他们也可以窃取您的数据。
要防止IP嗅探,您需要再次使用SSL。为防止穷举搜索,最好(但不仅仅是)解决方案是实施IP限制,因此只有已知主机才能从该目录请求页面。为了防止随机算法猜测,你需要使用一个强大的随机化算法 - 阅读这个,它并不像听起来那么容易。
最后,如果攻击者设法通过这些安全层,您可以加密数据,并向客户端发出密钥。
您采取的这些步骤中有多少由您决定 - 请记住,如果存在其他漏洞,攻击者可以轻松访问您的系统,则这些步骤都不能保证安全。