用 Google Gears 增强您的 Web 应用程序(5)

来源:developerWorks 中国 作者:傅 飞
  

使用 Timer API

与 HttpRequest API 相似,由于子 worker 不能访问 window 对象,所以也就不能调用它的两个定时器方法 setTimeout 和 setInterval, Google Gears 专门提供了 Timer API,让子 worker 里面的 JavaScript 代码也可以调用定时器方法。Timer API 的功能和 window 对象的定时器方法是一样的,在此也不再举例。





关注安全

在这一节中,我们将介绍 Googler Gears 用到的安全策略以及如何在开发过程中写出安全的代码。

同源策略

同源策略不允许一个网站上的 JavaScript 访问另一个网站上的的任何资源。 Google Gears 就是用同源策略作为基本的安全策略,具体体现为:

  1. 运行在一个网站上的 LocalServer API 只能抓取同一个网站上的 URL 或者用同一个网站上的 manifest 文件。
  2. 运行在一个网站上的 Database API 只能打开为同一个网站创建的 SQLite 数据库。

用户许可

为了保护用户的客户端,当 Google Gears 的 API 尝试访问本地资源的时候,浏览器会弹出一个许可对话框让用户选择是否允许该操作,当用户选择允许该操作的时候, Google Gears 会记住这个决定,以后同样的操作就不会再弹出许可对话框。但用户仍然可以更改被记住的决定,方法是在浏览器的菜单中选择“工具”->“Gears 设置”,在弹出的对话框中进行修改,如图 2 所示。


图 2.Gears 设置对话框
图 2.Gears 设置对话框

用户数据保护

Google Gears 的数据,包括 localServer API 抓取到本地的 Html 文件和 Database API 创建的本地数据库文件,都是存放在操作系统的当前用户目录,操作系统的其他用户是不能访问这些文件的。

防止 SQL 注入

为了避免攻击者用 SQL 注入方式攻击你的 Web 应用程序,不要直接把用户的输入作为值传给 SQL 语句,而是通过问号占位符将用户的输入传给 SQL 语句,如清单 14 所示。


清单 14. 防止 SQL 注入
				 
 db.execute('select * from emp where name=?',[user_input]);// 推荐使用
 db.execute('select * from emp where name="'+user_input+'"');// 不推荐使用





结束语

Google Gears 提供了大量功能可以增强我们的 Web 应用程序,作为 Web 应用程序开发人员,为了开发出更强大的应用程序,我们就需要考虑如何在已有的 Web 应用程序里面用好 Google Gears, 或者在我们架构一个新的 Web 应用程序的时候,尽量考虑如何充分利用 Google Gears 提供的功能。(责任编辑:A6)


时间:2009-08-20 16:52 来源:developerWorks 中国 作者:傅 飞 原文链接

好文,顶一下
(4)
100%
文章真差,踩一下
(0)
0%
------分隔线----------------------------


把开源带在你的身边-精美linux小纪念品
无觅相关文章插件,快速提升流量