如何提高从 Web 服务器下载简单文件的安全性?

How To Improve Security For Simple File Download From A Web Server?

亲爱的 Whosebug 社区,

======================================

TL;DR 版本:

在我们进一步处理与云 Web 门户提供商的关系之前,我想坚持要求他们为我们提供从他们的 Web 服务器获取数据副本的安全方式.

  1. 安全地验证我们自己,而不会让我们自己的凭据容易被盗或欺骗,并且
  2. 在返回给我们的途中保护传输中的文件。

尽管我在该领域缺乏经验,但我怀疑我可能必须亲自为他们指出正确的方向。我可以要求他们研究哪些简单但安全的方法来验证我们?

======================================

已满POST

背景:

在工作中,我们正在评估一个基于云的门户网站,我们的现有和以前的客户将能够通过该门户网站相互联系(我们有与我们成群结队互动的客户).

门户的用户界面设计精良,这就是我们考虑购买它的原因,但提供它的公司还很年轻。因此,例如,他们的“帮助我们将门户数据与 SalesForce 集成”的想法是在管理控制面板中有一个 link 页面 returns 包含我们数据库全部内容的 CSV 文件

"Fetch a CSV" 实际上没问题,因为我们已经使用 ERP 中的其他 CSV 文件执行此操作(使用数据加载器推送到 SalesForce 并在始终在线的 PC 上安排 Windows 批处理脚本) .

我说我们可以使用它,只要他们为我们提供一种在凌晨 5 点无需人工干预的情况下以编程方式获取 CSV 文件的方法。他们这样做了,但该解决方案似乎容易受到利用,我希望获得指导以重定向他们的工作。

关于人类的消遣UI:

link 人们认为使用门户网站的 Web 界面的人是http://www.OurBrandedDomain.com/admin/downloaddatabase

如果您还没有登录,您将被重定向 http://www.OurBrandedDomain.com/Admin/login?returnUrl=admin/downloaddatabase ,一旦您登录,CSV 文件就会提供给您。

(是的,我知道,这是 HTTP 和客户数据...我打算与他们讨论关闭对 login/signup 表单和内部结构的 HTTP 访问该网站也是。不过,这不是我问题的重点。)

他们的提议:

所以,正如我所说,我要求提供一些可以编程使用的东西。

他们给我们的是前往 http://www.OurFlavorOfTheirSite.com/admin/fetchdatabase?email=AdminsEmail@Domain.com&password=AdminsPassword

的指示

如果我错了请纠正我,但这似乎是一种非常不安全的向 Web 服务器验证我们自己的方式。

我如何需要帮助:

在我们进一步处理与该门户提供商的关系之前,我想坚持要求他们为我们提供一种安全的方式来获取我们数据的 CSV 副本。

  1. 安全地验证我们自己,而不会让我们自己的凭据容易被盗或欺骗,并且
  2. 在返回给我们的途中保护传输中的文件。

但是,我不觉得他们真的考虑了很多安全问题,而且我怀疑尽管我自己在该领域缺乏经验,但我可能必须亲自为他们指出正确的方向。

我可以要求他们研究哪些简单但安全的方法来验证我们的身份,他们对他们的服务器架构一无所知,只能从我刚才描述的内容中推断出来这里?

该解决方案不必让我们使用浏览器与他们的服务器进行交互。由于我们将在没有人为干预的情况下在 Windows 脚本环境中下载文件,因此建议我们只能以编程方式测试的解决方案很好 (尽管这会使我的学习曲线有点陡峭) .

(我想解决方案甚至可以摆脱以 CSV 文件形式提供数据的服务器,尽管那样我们可能最终会在本地重建一个 CSV 文件,因为我们有CSV->SalesForce 的基础设施。)

提前致谢。

是的,那是不安全的。

你应该坚持使用TLS。为此,他们需要安装证书颁发机构颁发的证书以验证他们拥有域 OurFlavorOfTheirSite.com。这将使 URL 能够使用 HTTPS,这意味着通信已加密并经过身份验证(即另一个网站无法在不显示浏览器警告的情况下欺骗 OurFlavorOfTheirSite.com)。

虽然 email=AdminsEmail@Domain.com&password=AdminsPassword 参数将被加密,但应通过 POST 而不是 GET 提交这些参数。原因是 GET 查询字符串参数记录在浏览器历史记录中,默认记录在代理和服务器日志中,并且可以在 referer header 中传输,当资源来自其他域时。