我们正在实现一个网站,旨在存储用户上传的开放数据集的链接。
该网站旨在允许不同的公司与其他用户共享信息数据集,从而建立知识库。
但是,仅存储数据集的 URL 的必要条件会带来危险的安全风险,因为在我们强制实施操作的任何审核过程后,最终 URL 上的内容可能会更改。
因此,任何人都可以上传指向包含数据集的合法页面的合法网址,在我查看并在网站上发布后,他们可以将网址重定向到恶意网站或内容。
我们已经向客户陈述这是一个问题,但他们希望我们寻找解决方案。也。。。发布外部 URL 是当今相当普遍的用例,我认为它应该是有关如何执行此任务的一些最佳实践。
第一个明显的选择是在重定向之前显示一条消息,警告用户他要离开我们网站的明显事实,但这对我来说似乎很异想天开。
我们已经考虑过在审核时存储内容的 md5,并在有人关注 url 时对其进行检查,以确保内容没有更改。但是,该网站的主要目标是存储不断发展的数据集,这些数据集旨在更改,甚至可能每小时更改一次,因此这不是一个好方法。
我的问题是:有人知道如何实现安全的外部URL重定向的任何最佳实践吗?您如何从安全角度面对这些功能?
我相信您的问题没有单一的防弹解决方案。但是,仍然可以通过至少应用以下更改(如果适用于您的应用程序(来降低风险:
- 用户必须先注册,然后才能加载/定义数据集 URL。注册过程必须足够安全、严格和强大,以击退大多数恶意的人。询问电子邮件、验证电子邮件、验证码、最终的个人或公司信息。然后使用电话号码或任何类似的东西启用双因素身份验证,这将更加"表征"或"个性化"用户。
- 一旦注册是安全和可信的,那么您将不那么担心对URL的恶意更改。
手动验证每个更新的数据集(URL 和站点(。自动化甚至更好,但相当困难。有用于网站的沙盒工具。该工具可以连接到 URL 并执行安全检查。我让你谷歌一下。
使用免费或付费的在线网站安全检查器。每次更新 URL 时,请使用 https://www.virustotal.com/或 https://sitecheck.sucuri.net/等工具对此 URL 执行安全扫描。我也让你谷歌一下。
最终对发布数据集的公司实施高安全标准。例如,要求ISO27001合规性。不是最友好的解决方案,但这是质量的保证。
还要请求受 TLS 保护的 URL,并确保证书在设置 URL 时有效(可以通过编程方式轻松测试(。在这种情况下,您还可以仅在域发生更改时引发警报或触发手动验证。
为所有用户提供发出断开或恶意链接信号的可能性
如果想到其他事情,我会编辑我的帖子......但我认为上述主张已经可以显着提高您网站的安全级别。当然,不要忘记通过定期进行安全评估和渗透测试来实现自己的安全性,并考虑设计安全性。