某个客户端的数据库是恶意的,当与生产系统同步时,则可能出现同步 问题,或者客户端的潜在恶意数据将被插入到生产系统。”为了解决这个问题,开发人员需要能够验证数据是否为恶意的,这其实是个很复杂的问题。对于这个问题的重要性并不是所有人都赞同。Veracode公司首席技术官Chris Wysopal表示,例如web应用程序通过使用插件或者浏览器扩展存储数据客户端就一直存在很多方法。“有很多已知的方法可以操控目前部署的HTML5 SessionStorage属性,但是标准z终确定时,这个问题才会解决。
跨域通信
而其他版本的HTML可能直允许JavaScript发出XML HTTP请求调用回原来的服务器,而HTML5放宽了这个限制,XML HTTP请求可以发送给任何允许这种请求的服务器。当然,如果服务器不可信任的话,这也会带来严重安全问题。“例如,我可以建立一个mashup(糅合,将两种以上使用公共或者私有数据库的web应用合并形成一个整合应用)通过 JSON(Javascript Object Notation)将第三方网站的比赛比分拉过来,”Cornell表示,“这个网站可能会发送恶意数据到我的用户浏览器正在运行的应用程序上。虽说 HTML5允许新类型的应用程序的建立,但如果开发人员在开始使用这些功能时,并不理解他们所建立的应用程序的安全意义,那么将会给用户带来很大安全风 险。”
对于依赖于PostMessage()来编写应用程序的开发人员而言,必须仔细检查以确保信息是来源于他们自己的网站,否则来自其他网站的恶意 代码可能会制造恶意信息,Wysopal补充说。这个功能本身并不是安全的,开发人员已经开始使用不同的DOM(文档对象模型)/浏览器功能来效仿跨域通讯。另一个相关问题是,万维网联盟目前为跨源资源共享设计提供了一种使用类似与跨域机制绕过同源政策的方法。“IE部署的安全功能与Firefox、Chrome以及Safari都不相同,“开发人员需要确保他们创建过于宽松访问控制列表的 危害,特别是因为某些参考代码目前非常不安全。
Iframe安全从安全角度来看,HTML5也有不错的功能,例如计划支持iframe的沙盒属性。“这个属性将允许开发者选择数据如何解译的方式,“不幸的是,与大部分HTML一样,这个设计很可能被开发人员误解,很 可能因为不便于使用而被开发人员禁用。如果处理得当,这个功能将能够帮助抵御恶意第三方广告或者防止不可信任内容重放。”