关于HTML5的安全问题开发人员需要牢记的

  应用程序安全专家表示,HTML5给开发人员带来了新的安全挑战。

  苹果公司与Adobe公司之间的口水战带来对HTML5命运的诸多猜测,尽管HTML5的实现还有很长的路要走,但可以肯定的一点是,运用HTML5的开发人员将需要为应用程序安全开发生命周期部署新的安全功能以应对HTML5带来的安全挑战。

  那么HTML5将会对我们需要覆盖的攻击面带来怎样的影响?本文将探讨关于HTML5几个重要安全问题。

  客户端存储

   早期版本的HTML仅允许网站将cookies作为本地信息存储,而这些空间相对较小,仅适用于存储简单的档案信息或者作为存储在其他位置的数据(例如 会话ID)的标识符,Denim集团应用程序安全研究部门的主管DanCornell表示。然而,HTML5LocalStorage则允许浏览器本地存 储大量据库,允许使用新类型应用程序。

  “随之而来的风险就是,敏感数据可能被存储在本地用户工作站,而物理访问或者破坏该工作站的攻击者,就能够轻松获得敏感数据,”Cornell表示,“这对于使用共享计算机的用户更加危险。”

   “从定义上来说,它真的只是能够在客户端系统存储信息,”Rapid7公司的安全研究人员JoshAbraham表示,“那么你就具备基于客户端SQL 注入攻击的潜在能力,或者可能你的某个客户端的数据库是恶意的,当与生产系统同步时,则可能出现同步问题,或者客户端的潜在恶意数据将被插入到生产系 统。”

  为了解决这个问题,开发人员需要能够验证数据是否为恶意的,这其实是个很复杂的问题。

  对于这个问题的重要性并不是所有人都赞同。Veracode公司首席技术官ChrisWysopal表示,例如web应用程序通过使用插件或者浏览器扩展存储数据客户端就一直存在很多方法。

  “有很多已知的方法可以操控目前部署的HTML5SessionStorage属性,但是标准最终确定时,这个问题才会解决,”Wysopal表示。

  跨域通信

  而其他版本的HTML可能直允许JavaScript发出XMLHTTP请求调用回原来的服务器,而HTML5放宽了这个限制,XMLHTTP请求可以发送给任何允许这种请求的服务器。当然,如果服务器不可信任的话,这也会带来严重安全问题。

   “例如,我可以建立一个mashup(糅合,将两种以上使用公共或者私有数据库的web应用合并形成一个整合应用)通过 JSON(JavascriptObjectNotation)将第三方网站的比赛比分拉过来,”Cornell表示,“这个网站可能会发送恶意数据到我 的用户浏览器正在运行的应用程序上。虽说HTML5允许新类型的应用程序的建立,但如果开发人员在开始使用这些功能时,并不理解他们所建立的应用程序的安 全意义,那么将会给用户带来很大安全风险。”

   对于依赖于PostMessage()来编写应用程序的开发人员而言,必须仔细检查以确保信息是来源于他们自己的网站,否则来自其他网站的恶意代码可能 会制造恶意信息,Wysopal补充说。这个功能本身并不是安全的,开发人员已经开始使用不同的DOM(文档对象模型)/浏览器功能来效仿跨域通讯。

  另一个相关问题是,万维网联盟目前为跨源资源共享设计提供了一种使用类似与跨域机制绕过同源政策的方法。

  “IE部署的安全功能与Firefox、Chrome以及Safari都不相同,”他指出,“开发人员需要确保他们创建过于宽松访问控制列表的危害,特别是因为某些参考代码目前非常不安全。

  Iframe安全

  从安全角度来看,HTML5也有不错的功能,例如计划支持iframe的沙盒属性。

  “这个属性将允许开发者选择数据如何解译的方式,”Wysopal表示,“不幸的是,与大部分HTML一样,这个设计很可能被开发人员误解,很可能因为不便于使用而被开发人员禁用。如果处理得当,这个功能将能够帮助抵御恶意第三方广告或者防止不可信任内容重放。”

时间: 2025-01-30 18:25:11

关于HTML5的安全问题开发人员需要牢记的的相关文章

开发人员需牢记的HTML5安全问题

应用程序安全专家表示,HTML5给开发人员带来了新的安全挑战. 苹果公司与Adobe公司之间的口水战带来对HTML 5命运的诸多猜测,尽管HTML 5的实现还有很长的路要走,但可以肯定的一点是,运用HTML 5的开发人员将需要为应用程序安全开发生命周期部署新的安全功能以应对HTML5带来的安全挑战. 那么HTML5将会对我们需要覆盖的攻击面带来怎样的影响?本文将探讨关于HTML 5几个重要安全问题. 客户端存储 早期版本的HTML仅允许网站将cookies作为本地信息存储,而这些空间相对较小,仅

《HTML5多媒体应用开发》——1.2 HTML5的发展

1.2 HTML5的发展 Tim Berners-Lee是HTML之父,这是相当为人熟知的,在当今的Web开发领域中每个人都承认这一点. 没有必要了解HTML从1990年的初始版本到大部分人已经了解的HTML 4.01之间漫长而详细的历史,但是HTML5取得成果和进展的过程值得一提. 1998年,万维网联盟(W3C,www.w3.org)成员决定,不值得对HTML 4.01规范作进一步扩展.他们决定未来的Web将依靠XML(扩展标记语言),因为它的语法更加严格,这就使得XML Web文档更加容易

开发人员需知:HTML5性能分析面面观

以下这篇文章是由一位名为张黎明的IT技术人员所写,其发表于InfoQ的网页上.这次他在全文里面从9个不同的方面分析HTML5的性能,还是很值得相应的开发人员阅读的. 从性能角度来说,HTML5首先是缩减了HTML文档,使这件事情变得更简单.第一,从用户可读性上说,原先一大堆东西,像初学者第一次看到这些东 西是看不懂的,而HTML5的声明方式对用户来说显然更友好一些. 第二,文档编码的声明,用HTML5方式的话,就很简单.很多人问HTML5是什么?我们说可以先用HTML5的方式就是把DOCTYPE

值得网页开发人员收藏的16款HTML5工具

  HTML5 正在迅速改变创建和管理网站的方式.HTML5 在不同的领域让网页设计更强大的.快.安全.响应式.互动和美丽,这些优点吸引更多的 Web 开发人员使用 HTML5 开发各种网站和应用程序. 本文收集的20款优秀的 HTML5 Web 应用程序,值得添加到您的 HTML5 的工具箱中,他们能够帮助你开发前端项目更快.更容易. Initializr Initializr 是一个可以让你创建 HTML5 模板的网站,可以创建样板 HTML5 模板,响应式的 HTML5 模板或 Twitt

Java开发人员必须重视HTML5的5点理由

过去,Java开发人员都是依赖Web浏览器作为应用程序的前端.但过程往往令人沮丧:HTML笨 拙,JavaScript缓慢而难用,缺乏调试工具,想让应用程序兼容所有的浏览器是一个非常艰苦的过程.但现在你们的福音来了,随着浏览器技术的改进, 尤其是采用了HTML5之后,以上问题已经得到显著的改善.下面就盘点一下HTML5能为Java开发人员带来的5点好处. 1.跨平台部署 跟Java一样,HTML5的核心优势之一便是跨平台运行.既支持传统的桌面平台,又支持移动平台,包括iOS, Android,

开发人员应用软件安全编码的最佳实践

信息安全并不仅仅是保护计算机.网络.信息免受攻击和危害.应用软件缺乏安全性日益成为许多企业的一种巨大漏洞!无论是软件开发者,还是安全专家,在与攻击者斗争的过程中,永远不可能一劳永逸地解决安全问题.因为攻击者 往往富有创造性并且坚忍不拔,还有金钱的巨大诱惑.除了利用操作系统的漏洞之外,攻击者还喜欢利用应用软件的漏洞,而软件工程师们似乎 忽视了这一点.软件安全的目标是什么?是构建更好的.无缺陷的软件.一般情况下,应用软件都会存在许多缺陷,其中的相当一部分都成为安全问题的源头.在开发软件时,将安全性牢

网站开发人员应该知道的61件事

有人在Stack Overflow上发问,动手开发网站之前,需要知道哪些事情? 不出意料地,他得到了一大堆回答. 通常情况下,你需要把所有人的发言从头到尾读一遍.但是,Stack Overflow有一个很贴心的设计,它允许在问题下方开设一个wiki区,让所有人共同编辑一个最佳答案.于是,就有了下面这篇文章,一共总结出六个方面共计61条"网站开发须知". 我发现,这种概述性的问题,最适合这种集合群智.头脑风暴式的回答方式了.这也是我第一次觉得,Stack Overflow做到了Wikip

WEBJX分享适合web开发人员需求的小工具

文章简介:今天就给大家分享10个有用的小工具,我相信这将是适合大多数开发人员的需求,这些小工具在可用性,速度和稳定性方面,为开发人员提供更多的选择功能,如果你正在开发一个这样的项目有,这些小工具是不错的选择. 构件 (或控制) 是由用户,如窗口或文本框中显示可变信息图形用户界面 (GUI) 的元素.在web开发当中我们经常需要构建用户友好的部件,如百度谷歌地图的拖拽,社会化分享工具的显示次数,漂亮的UI按钮等等,这些都是由小部件构建应用程序模块然后呈现给用户的基本视觉页面. 今天就给大家分享10

面向.NET开发人员的Ajax 技术平台策略(3)

ajax|策略|技术平台 基于Ajax 架构的Web应用框架 之前我提到过"似Ajax" 的架构,现在我要说的Ajax框架也就是指专门针对这种Ajax架构而提供的框架.目前,我还没有听说过特别好的这个领域的流行框架.但我知道我的身边,.NET领域,J2EE领域或PHP平台上都有这样的框架和应用,我认为,正是因为有很多这样应用,所以Ajax才会像某个模式一样,被撰有一个专门的名词.不过我感觉Ajax 渐渐变成了Ajax feature的代名词,变成了XMLHTTP的代名词,成了异步通讯,