【问题标题】:Best Practices: How do you protect your users from external urls?最佳实践:您如何保护您的用户免受外部 URL 的侵害?
【发布时间】:2020-05-28 04:41:21
【问题描述】:

我们正在实施一个网站,该网站旨在存储指向用户上传的打开数据集的链接。

本网站旨在让不同公司与其他用户共享信息数据集,建立知识库。

但是,仅将 url 存储到数据集的必要条件会带来危险的安全风险,因为最终 url 上的内容可能会在我们对操作方实施的任何审核过程后发生变化。

因此,任何人都可以上传指向包含数据集的合法页面的合法 url,在我审查并在网站上发布后,他们可以将 url 重定向到恶意网站或内容。

我们已向客户说明这是一个问题,但他们希望我们寻找解决方案。另外……发布外部 url 是当今非常流行的一个用例,我认为这应该是有关如何执行此任务的一些最佳实践。

第一个明显的选项是在重定向之前显示一条消息,警告用户他正在离开我们网站的明显事实,但这对我来说似乎很异想天开。

我们考虑过在审核时存储内容的 md5,并在有人关注该 url 时对其进行检查,以确保内容没有更改。但是,该站点的主要目标是存储不断变化的数据集,这些数据集可能会按小时更改,因此这也不是一个好方法。

我的问题是:任何人都知道有关如何实现安全的外部 url 重定向的最佳实践吗?从安全的角度来看,您如何应对这些功能?

【问题讨论】:

    标签: security url


    【解决方案1】:

    我相信没有单一的防弹解决方案可以解决您的问题。但仍然可以通过至少应用以下更改(如果适用于您的应用程序)来降低风险:

    • 用户必须先注册才能加载/定义数据集 URL。注册过程必须足够安全、严格和稳健,以击退大多数恶意人员。询问电子邮件、验证电子邮件、验证码、最终的个人或公司信息。然后使用电话号码或任何类似的东西启用双因素身份验证,这将更加“表征”或“个性化”用户。
    • 一旦注册安全且受信任,您就不必担心恶意更改 URL。
    • 手动验证每个更新的数据集(URL 和站点)。自动化更好,但很难。有用于网站的沙盒工具。该工具可以连接到 URL 并执行安全检查。我让你谷歌一下。

    • 使用免费或付费的在线站点安全检查器。每次更新 URL 时,请使用 https://www.virustotal.com/https://sitecheck.sucuri.net/ 等工具对此 URL 执行安全扫描。我也让你谷歌一下。

    • 最终为发布数据集的公司实施高安全标准。例如请求 ISO27001 合规性。不是最友好的解决方案,但这是质量的保证。

    • 还请求受 TLS 保护的 URL,并确保在设置 URL 时证书有效(可以通过编程轻松测试)。在这种情况下,您也可以仅在域发生更改时发出警报或触发手动验证。

    • 为所有用户提供指示损坏或恶意链接的可能性

    如果有其他想法,我会编辑我的帖子。但我认为上述提议已经可以显着提高您网站的安全级别。当然,不要忘记通过定期进行安全评估和渗透测试来实现自己的安全性,并通过设计来思考安全性。

    【讨论】:

    • 感谢您的回答。您的一些建议已经在我们的路线图上,也许其中一些在用户端比我们想要的更具侵略性。但我认为我们的客户必须在安全性和用户友好性之间做出决定。
    • 这确实是世纪之战 :) 用户友好性的概念将被安全性粉碎,也不例外。
    猜你喜欢
    • 1970-01-01
    • 2015-05-19
    • 1970-01-01
    • 1970-01-01
    • 2016-08-26
    • 2010-10-11
    • 2012-02-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多