保护您的Web应用程序:如何关闭它免受第三方干扰

图片

译者的话:我们正在为您发布程序员和软件架构师Jim Medlock 的文章 。 Medlock讨论了保护应用程序或Web服务的基本方法。 值得注意的是,该材料可能对新手程序员很有用。 尽管如果专业人士发表评论,每个人都会感激不尽。

为什么要烦扰任何人入侵该应用程序? 是的,只是因为越来越多的人想要随着时间的推移这样做。 这些是“普通”黑客,他们对克服某人的保护具有浓厚的兴趣,这些网络犯罪分子破坏了服务和获利站点,这些都是政府组织。

在过去的几个月中,许多大型组织在大量信息泄漏后就发布了新闻。 其中,Facebook及其5000万个被盗帐户,具有3.4 TB数据和7000万个文档的FIFA,具有50万个帐户的Google,具有来自整个网络4.27亿客户的数据的万豪酒店。

Skillbox建议:两年实践课程“我是PRO Web开发人员”

我们提醒您: 对于所有“哈勃”读者来说,使用“哈勃”促销代码注册任何Skillbox课程时均可享受10,000卢布的折扣。


来源

不仅黑客攻击的数量在增加,而且网络犯罪分子所造成的损害也越来越大。 据专家称,每一次成功的黑客攻击,网络犯罪分子造成的直接和间接损失的平均规模为386万美元。 当然,这是市场的平均水平。 实际数字各有不同。

一些更多的统计数据。 网络犯罪分子造成的损害可以通过以下数据判断:

  • $ 148-一个被盗帐户的“价格”;
  • 4000万美元-100万个帐户;
  • 3.5亿美元-5000万个帐户。



金钱不是唯一的论据:考虑将所有事物整理好需要多长时间。

基础架构安全与 应用安全




大多数安全措施旨在保护IT基础架构的基础,例如服务器,存储,数据中心。 这是必要的,但不仅必须保护它们。

有关应用程序本身的安全措施也非常重要。 它们提供了一整套方法来查找,修复和防止恶意使用软件漏洞。 值得强调这些:

  • 当目标是专门搜索网络安全方面有问题的地方时,由信息安全专家执行的代码审查;
  • 基于黑盒的审核,基于与应用程序的配合;
  • 在编写大量代码之前检查应用程序体系结构;
  • 使用有助于评估保护的自动工具;
  • 推出赏金计划,使第三方专家可以发现问题区域。

最有效的措施是基于逐层安全性的概念。 在这种情况下,每个受保护的元素都使用自己的工具集。



您对客户端无能为力


问题是您不太可能在用户端保护您的项目。 尽管创建者做出了努力,但现代浏览器还是很脆弱。

对于Web服务,整个系统的薄弱部分是授权所需的密钥。 例如,使用GitHub API的应用程序必须支持令牌身份验证。 如果犯罪者可以掌握密钥,那么他将可以在GitHub上访问受害者的代码和项目。

对于前端开发人员来说,危险在于,如果提供了诸如私钥和令牌之类的措施,他就可以确保自己的服务完全安全。 所有这些都很好,但是所有相同的浏览器都是一个薄弱环节。

从整个项目中分离密钥之类的安全数据是否安全?


通常,环境变量用于将数据提取到文件中,例如.env。 另一个步骤是将此类文件的名称添加到.gitignore中,这会阻止执行git push命令以上传到公共存储库,该文件将向所有人开放。



所有这些都很好,但是.env文件未加密。 对于Create React App,可以使用浏览器的build / static / js目录中的Developer Tools选项检查它们。 例如,这里是检查0.chunk.js时发现的内容。



如您所见,这种方法并没有带来特殊的优势,在某些情况下,最好将重要的安全元素存储在源代码中。 还有另一种有吸引力的方案,其中代码分离用于延迟加载包含环境变量的脚本,直到用户验证应用程序为止。 但是,如果客户端计算机受到威胁,则无法解决任何问题-毕竟,入侵者可以访问其文件系统。

解决方案




与客户端不同,可以保护服务器应用程序,以使重要数据不会落入攻击者的手中。 为此,您可以使用Oauth获得更高级别的身份验证和访问控制,加密以及HTTPS和TLS等协议。



可以通过实现服务器端API来解决保护应用程序秘密的难题。 同时,它充当代理服务器,以将客户端应用程序与所使用的服务提供商隔离。 API不会在客户端使用私有数据在服务中对其进行身份验证,而是从服务器应用程序进行身份验证,执行请求,然后将结果返回给客户端。 私钥或其他数据在任何情况下都不会透露给后者。

综合方法




是的,复杂性不只是言语。 为了使用户有信心对其数据进行可靠的保护,必须进行仔细的计划,并基于深入的保护和对细节的关注,制定周全的安全策略。

仅仅依靠“技术孤岛”是不够的。 有必要将所有元素连接在一起,了解整个系统的工作方式。

只有在这种情况下,应用程序或服务才是安全的。

Source: https://habr.com/ru/post/zh-CN433538/


All Articles