触摸精致应用的麻烦

这是一个真正的(含泪)故事关于我们在办公室如何尝试使我们的工作同事们开心,面对我们大多数客户经历过的事情,或者可能必须在某些时候进行:将服务器或应用乐彩网迁移到现代时代。

在我们的案例中,该申请是足球的投注游戏 俄罗斯世界杯 - 为了良好的办公室乐趣。这个想法是它是一个Web应用乐彩网,在那里同事可以参加,预测世界冠军,并猜测每一场比赛的最终得分。我们将拥有一个具有假名,电子邮件地址,密码和一切的用户数据库,以便每个用户都有他们的个性化视图的赌博方式以及从排名的角度来看。

我们一直在考虑的目标Web申请已成功用于最后两项锦标赛,并在此之前使用,在我们时代之前的几个不同的冠军赛中使用。它随着时间的推移而发展(近二十年),修复了多次,并在破坏时再次工作。当我们得到它时,它已经拥有过去的过去 - 这听起来很熟悉吗?

建立一个计划

安装应用乐彩网涉及几个从未正确记录的复杂步骤(再次 - 声音熟悉),包括:

  • 准备好Windows Server框(Windows Server 2016)
  • 安装IIS
  • 将二进制文件/源文件和数据库文件复制到框中
  • 请注意,它不会启动并开始在IIS中进行明显的更改,例如:
    • 启用经典ASP - 因为,好吧,它是经典的ASP
    • 启用32位应用乐彩网支持
    • 确保应用乐彩网池可以运行经典asp
    • 在数据库上设置显式权限。

随着使用管理凭证的系统登录系统,我们提醒我们如何真正搞定应用乐彩网。应用乐彩网的Rusty-look的管理界面让我们提醒我们的旧年旧年。数据库是具有清除文本密码存储的访问MDB文件。当你让那个沉没时,我会得到我的阿司匹林。

足球赌注足球世界杯

面对真相,回到现实

毋庸置疑,它越来越难以在镜子中看待自己,那种解决方案以富有成效的方式运行,与你的同事们一起存放在那里。让我们说实话,有很多问题:

  • 这是经典的ASP,会暴露在互联网上。上帝知道代码是多么糟糕,并且如何通过日期代码导出的数据如何,而无需实际损害操作系统或IIS。
  • 管理员可以访问不到最佳保护的密码。即使我们告诉我们的同事,他们必须选择密码,他们永远不会在其他地方使用 - 他们会听吗?
  • 我们没有域或任何用于TLS / SSL的任何东西。虽然这不是每个人的问题,并且可以清楚地解决,但明确我们还没有考虑过这一点。并将是额外的努力。
  • 我的意思是 - 任何人真的知道什么都在那里的缩写呢?
  • 身份验证基于用户名+密码,其中包含单独的(基于MDB)用户存储

让它变得更糟 - 我们不是开发人员,这更危险:不知道你在做什么而是仍在做。

现在是世界杯前八天,时间正在运行,人们要求获得投注游戏。只需用一次即可使用这一点?绝对不是 - 所以我们将A组合在一起的此应用乐彩网列表,如下所示:

  • 将MDB迁移到Azure SQL,并更改处理DB Access的所有代码(读/写)。
  • 摆脱处理密码的所有代码,并将其转换为基于安全的哈希密码处理密码
  • 确保即使在哈希密码中也牢固地存储在Azure SQL中。
  • 获取TLS / SSL工作
  • 摆脱admin的阅读用户的密码的力量(或一旦我们在那里哈希)

分手后要往前看了

这涉及已经很多更改和编码,这将在我们离开的短期内消耗太多时间。即使通过上述更改,我们将无法解决以下任何问题:

  • 它可能仍然仍然是日期,不值得信任的代码 - 由某人长期以来一直写的,作为一个侧面项目
  • 它仍然是经典的asp,其一生已经发表了评论 斯科特格于2005年
  • 代码不为UI,业务逻辑和数据库层分隔。
  • 我们已经关闭了IIS中的各种有用的功能,使其可能易受攻击 - 是的,自2005年以来的IIS在IIS上存在很大进展。
  • 身份验证仍然发生在我们的数据库中,我们无法阻止用户选择他们使用其他内容的密码。

在最后一点 - 我们认为这是一个问题,因为,任何这些同事都应该在任何时间点都受到损害,我们可能最终是窃取从该平台窃取密码并尝试在他们的亚马逊,ebay,ebay上的密码的嫌疑人......

那么我们最终做了什么?我们的选择是:

(1)使用最新技术从头开始发展。作为侧面笔记,如果您是开发人员,经济独立(您不需要现金)并寻找一面项目 - 与我们交谈.

  1. 套子 身份提供者 对用户信任的用户 - 我们只是消耗身份并根本不存储凭据
  2. 用一个 现代发展语言 A. 现代平台 as a Backend (PaaS)
  3. 以一种方式设计数据库布局 保护用户信息 (用户名,假名,邮件地址)内置
  4. 投注游戏的矫枉过正,但 - 选择允许的架构 缩放 并重新部署未来的世界杯和其他投注情景。听说过它?微软是 排球大 too.
  5. A必须有一个投注游戏: 自动加载 来自受信任网站的相应匹配结果,使管理员不必手动输入结果…想象一下,在键入最终结果时出错的原因!
  6. 在现代的建筑上获得它不会让你撕掉你的头发只是看着页面和意大利面条代码 - 它与UX分开了DB访问,其中有一个 商业逻辑 in the middle.

(2)获取现有的SaaS应用乐彩网,为我们执行此操作并使用该应用乐彩网。

......显然,我们选择了(2)。

结论,你带走了什么?

这与您的业务或客户有如何回馈您的情况?每个企业都有一些旧应用乐彩网,对代码和二进制文件有最小的见解。正如我们在这篇文章所概述的那样,当数据泄露时,后果可能会有多么糟糕?对您的业务影响是什么?此帖子的目标是分享我们的思维流程和概述,小问题服务器管理员面临着困境。在服务器和应用乐彩网的迁移方案上留在迁移方案上进行调整。

标签

相关文章

发表评论

本网站使用AkisMet减少垃圾邮件。 了解如何处理评论数据.