HTML5如何改变网络安全?

谷歌的 announcement 宣布他们已经完成了 Flash 是 Flash 末日的最后一颗钉子。

甚至在此之前,像 Steve Jobs 这样的名人技术人员就公开反对 Flash。

随着 Flash 的消亡和 HTML5 的崛起,一个新时代已经来临,拥有外观更好、功能更好的网站,既适用于移动设备也适用于个人电脑。

数据的传输和接收也比以前更加简单直接。

然而,这也带来了一些需要解决的独特挑战。

好处在于 HTML5 将跨浏览器支持和功能性提升到了一个全新的水平。

某些浏览器不支持单个网站元素,必须更改网站元素以保持外观,这非常令人沮丧。

HTML5 摒弃了这一要求,因为所有现代浏览器都支持。

跨域资源共享

跨域资源共享(CORS)是 HTML5 最重要的特性之一,也是最容易出现错误和 hacker attacks 的特性之一。

CORS 定义了一些头部信息,以帮助网站定义源和促进上下文交互。

在 HTML5 中,CORS 取消了浏览器上的基本安全机制,称为 同源策略

根据同源策略,只有当两个网页具有相同的源时,浏览器才允许一个网页访问第二个网页的数据。

什么是源?

源是 URI 方案、主机名和端口号的组合。这个策略防止恶意脚本执行和从网页访问数据。

CORS 通过允许不同的站点访问数据来放宽了这个策略,从而实现上下文交互。

这可能会使黑客能够获取敏感数据。

例如,

如果你在 Facebook 上登录并保持登录状态,然后访问另一个网站,那么攻击者可以利用放松的跨域策略窃取信息并对你的 Facebook 帐户进行任意操作。

在略微冷静一点的情况下,如果用户登录了他的银行账户并忘记退出登录,黑客可以获取用户的凭据、他的交易信息甚至创建新的交易。

浏览器通过存储用户详细信息使会话 cookie 可以被滥用。

黑客还可以干扰头部以触发未经验证的重定向。

未经验证的重定向可能发生在浏览器接受不可信输入时。这反过来会转发一个重定向请求。不可信的 URL 可以被修改以向恶意站点添加一个输入,从而通过提供与实际站点相同的 URL 来发起钓鱼攻击。

未经验证的重定向和转发攻击还可以用于恶意构造一个 URL,该 URL 将通过应用程序的访问控制检查,然后将攻击者转发到通常无法访问的特权函数。

以下是开发人员应注意的一些事项,以防止这些问题发生。

  • 开发人员应确保传递给 open 的 URL。如果这些是跨域的,那么可能会容易受到代码注入的攻击。
  • 还要注意 URL 是相对路径还是指定了协议。相对 URL 不指定协议,即我们不知道它是以 HTTP 还是 HTTPS 开头。浏览器会认为两者都是正确的。
  • 不要依赖 Origin 头部来进行访问控制检查,因为它们很容易被伪造。

如何知道特定域名上是否启用了 CORS?

嗯,你可以使用浏览器中的开发者工具来 examine the header

跨域消息传递

为了防止 cross-site-scripting attacks,以前浏览器中禁止了跨域消息传递。

这也阻止了网站之间的合法通信,这使得跨域消息的大部分都无法进行。

Web消息传递允许不同的API进行轻松互动。

为了防止跨站脚本攻击,开发人员应该做以下几点。

他们应该说明消息的预期来源。

  • Origin属性应始终进行交叉检查和数据验证。
  • 接收页面应始终检查发送者的来源属性。这有助于验证接收到的数据确实是从预期位置发送的。
  • 接收页面还应执行输入验证,以确保数据处于所需的格式。
  • 交换的消息应被解释为数据而不是代码。

更好的存储

html5的另一个特性是它可以实现更好的存储。浏览器可以存储数据,而不是依赖于cookies来跟踪用户数据。

HTML5允许在多个窗口之间进行存储,具有更好的安全性,并且即使在关闭浏览器后也可以保留数据。本地存储可以在没有浏览器插件的情况下实现。

这带来了不同种类的麻烦。

开发人员应该注意以下几点,以防止攻击者窃取信息。

  • 如果一个网站存储用户的密码和其他个人信息,那么黑客可能会访问到这些信息。如果这些密码没有加密,可以很容易通过web存储API来窃取。因此,强烈建议加密和存储所有有价值的用户数据。
  • 此外,许多恶意软件负载已经开始扫描浏览器缓存和存储API,以获取有关用户的信息,如交易和财务信息。

总结思考

HTML5为Web开发人员修改和使事物更加安全提供了绝佳的机会。

提供安全环境的大部分工作都落在浏览器上。

如果想要了解更多信息,请查看“Learn HTML5 in 1 hour”课程。

类似文章