为什么每个 Web 开发人员都应该学习安全性知识
过去一周,在我为期100天的黑客挑战中,我开始深入研究安全基础知识,以及为什么我们作为开发人员应该学习在代码中实现安全性。网络安全和软件工程通常被视为两个独立的专业,没有太多交集,除了计算机科学专业的学生可能会有一两节入门课,以及训练营毕业生如果幸运的话,在讲座中会专门花几分钟学习。
最初开始学习编程时,我曾四处求教,想了解如何将我对网络安全的热情与软件工程结合起来。当时我得到的普遍共识是,它们是两码事,在学校学到的框架已经足够了,我不需要关心安全方面的问题。但这种想法让我有些不舒服。随着我通过 Bugcrowd 的漏洞赏金指导计划学习更多关于如何破解应用程序的知识,我更加坚定了“所有开发人员都应该学习如何在代码中实现安全性”的立场。
使用框架是开发过程中的常见做法,因为它们抽象出大量逻辑,从而节省大量时间。然而,如果不了解框架的工作原理或潜在风险就使用框架,可能会危及应用程序的安全性。一行缺陷代码就可能导致组织的内部系统出现漏洞。许多公司使用相同的框架和依赖项。这意味着,一旦这些工具中发现漏洞,所有使用它们的公司都将面临风险。如果他们没有确保更新依赖项并采取措施应对这些风险,风险将进一步加大。虽然效率和敏捷性通常在开发过程中优先考虑,但如果应用程序没有内置安全性,攻击面就会大大增加。
在开发应用程序时,您应该考虑以下事项:
- 这个应用程序应该做什么?
- 这个应用程序应该如何表现?
- 我的输入是什么?(表单字段、查询参数、本地存储、嵌入式 CSS 等)
- 我的输出是什么?
- 黑客可以利用哪些潜在弱点?
虽然软件工程和网络安全仍应被视为各自的专业,但开发人员学习将安全性融入其编码实践的基础知识将带来诸多益处。通过让开发人员参与解决方案并对其代码负责,用户和公司将不太可能卷入泄露机密数据的数据泄露事件。课程内容可能需要一段时间才能有所改变,以涵盖安全的软件开发实践。根据公司规模、对安全的重视程度和预算,公司可以通过组建 DevSecOps 团队、聘请安全专家,或聘请比不熟悉安全概念的开发人员更了解安全实践的开发人员来解决这个问题。将安全性与 Web 开发相结合的目标是预防应用程序中的常见漏洞,从而保护用户和公司,并降低在发生代价高昂且耗时长的安全漏洞时不得不撤回的可能性。
有兴趣了解更多吗?以下资源可能对您有所帮助:
-
Alice 和 Bob 学习 Tanya Janca 撰写的应用程序安全,或者作者在YouTube 上播放了这本书的播放列表
-
Mintbean 主办的“了解足够的前端安全以防万一”网络研讨会
-
MicroFocus 午餐与学习 DevSecOps由 Black Girls Hack 主办
在我的100天黑客生涯中,我每周都会研究一个不同的Web漏洞,并期待分享更多常见漏洞的细节,以及我们作为开发人员该如何防御这些漏洞。与此同时,欢迎您分享您对Web开发人员学习更多安全知识的想法,以及您感兴趣的任何资源!
文章来源:https://dev.to/lindsfonnes/why-security-is-important-for-every-developer-21d9