首頁 » 部落格 » 在保护 Web 应用程序安全方面,Web 程序员仍有很多东西需要学习

在保护 Web 应用程序安全方面,Web 程序员仍有很多东西需要学习

几乎每个人都在使用互联网,并在互联网上存储大量敏感信息。大多数人在登录网站并输入姓名、地址、电话号码、信用卡信息等时都不会三思而后行,因此网络应用程序的安全性确实是一件大事。

但是 Web 应用程序有多安全呢?互联网已经存在了一段时间,所以你会认为我们在设计和构建网站时不会再犯同样的错误(相反,我们应该犯一些令人兴奋的新错误!)。事实上,过去和现在开发人员犯的错误并没有太大的变化。虽然安全设备已经取得了长足的进步(WAF可以帮助检测和修复许多此类编程缺陷),但 Web 开发人员似乎仍在继续做他们一贯做的事情。

OWASP Top Ten 的一致性

OWASP Top Ten 是 Web 应用程序中最常见的漏 华人澳洲数据 洞列表。开放式 Web 应用程序安全项目 (OWASP) 每 3-4 年发布一次,旨在提高互联网的整体安全水平。

OWASP 十大漏洞列表对于跟踪网络安全的变化非常有用,因为它专门用于包含最近报告期内最常见的漏洞。如果某个漏洞出现在多个版本的列表中,这可能表明提高人们对该漏洞的认识并让开发人员停止犯错的努力没有取得多大成果。

但这还不算太糟,对吧?这十个问题中只有四个仍然存在,所以剩下的六个显然是 2010 年至 2017 年期间解决的问题。不完全是。实际上,许多“已解决”的问题只是重命名或合并到组中,以便为其他问题腾出空间:

  • 敏感数据泄露(2013 年)= 不安全的加密存储(2010 年)+ 传输层保护不足(2010 年)
  • 缺少功能级别访问控制 (2013) = 未能限制 URL 访问 (2010)
  • 破坏的访问控制(2017)=不安全的直接对象引用(2013)+缺少功能级访问控制(2013)

经过七年的安全培训,最终结果是未经验证的重定向和转发以及跨站点请求伪造不再出现在列表中(但仍分别在 8% 和 5% 的 Web 应用程序中发现)。然而,又有三个新漏洞进入了列表。这并不是朝着正确方向的进步。

这只是衡量网络安全进展的一种方式,但它讲述了一个相当可怕的故事。显然,2010 年 Web 应用程序中存在的许多相同问题在 2017 年仍然是一个问题,而且今天可能仍然是一个问题。这就是为什么为 Web 应用程序安装和维护安全设备如此重要的原因。

网络编程与其他程序的比较

衡量 Web 应用程序编程进展的另一种方法是将其与其他领域的编程(即桌面程序)进行比较。进行这种比较的其中一个复杂之处在于,我们只有在检测到并报告漏洞之后才知道这些漏洞(并且只有在造成重大破坏时才会真正出名)。然而,一项研究根据在开源产品中发现的漏洞数量确定了“最不安全的编程语言”。

根据研究,按编程语言发现的漏洞细分如下:

名单上排名第一的是 C;然而,这是有道理的, 在呼叫中心使用语音机器人的好处 因为它是名单上最古老的语言。许多遗留应用程序和为提高效率而设计的应用程序都使用这种语言,因此市场份额占其漏洞的很大比例。

令人担忧的结果是,PHP 位列第二,JavaScript 位列第四,漏洞总数为 27%。这些语言最常用于编写那些操纵敏感数据并通过 Web 传输的 Web 应用程序。

保持安全

在现代社会,不使用互联网几乎是不可能的,所以你能 做的最好的事情就是采取措施保证安全。如果你用网络应用程序运营自己的网站,安装网络应用程序防火墙 (WAF) 绝对是一个好主意,它可以帮助检测和阻止旨在利用这些漏洞的攻击。作为网络应用程序的用户,请考虑你向网站提供的信息。一旦你输入了这些信息,它就不在你的掌控之中了,你也不知道网站所有者对它的保护有多好。

返回頂端