星期一, 二月 16, 2009

构建基于WEB的SAAS程序的五点建议

1. 字符的大小写

大小写对于一些唯一键来说是非常重要,举个例子,当你在创建用户数据库的时候,你应该考虑到User1和uSeR1是否是相同的用户,特别的关注到现在的Email都是大小写无关的,所以,你必须要在你的系统重支持这点,假如你的应用跑在Linux/Unix操作系统,这点就更重要了,因为linux里面对于文件目录的大小写是敏感的,意味着User1和uSeR1这样的两个文件夹能够并存在同一文件目录下。

在数据库方面, MySQL 有一些小问题能够帮助你解决这些头疼的问题,假如你声明一个字段位varchar,并且选择上大小写无关性,那么当你搜索的uSeR1时候,User1也能被搜索出来。.

2. 国际化和Unicode

针对每个文件、每次请求从开始就全部采用UTF-8,这节省你很多时间去解决你的SAAS应用在其它非英语国家语言的展示问题。

同样在数据库上也采用UTF-8 . Mysql在安装的时候使用latin1字符,这个编码不适合亚洲地区的一些语言编码,所以在创建表的时候,在创建数据库和表的时候需要使用CHARACTER SET方式指定编码位UTF-8.

3. 登录和注册的生命周期

认证,是的,有很多研究关于“我怎样去认证用户”,我的观点是不要去认证它本身,而是需要校验的时候才去校验,当校验完之后,又返回他要访问的地方。

现在有些web站点对于用户的访问限制是这样做的,User1想去访问一个需要认证的服务,URL为: http://example.com/some/private/service/. 问题是很多SAAS系统,在用户无权访问这个服务的时候,经常直接跳转到首页面或者通用页面。

然后这个用户不对不这么做:

· 记住服务的URL http://example.com/some/private/service/

· 然后登录

· 重新在浏览器中输入这个URL http://example.com/some/private/service/

· 按回车.

解决方法也是显而易见的,跟踪这个URL,跳转用户到登录页面,当用户登录成功之后自动跳转到刚才的页面。用户体验好多了。.

其实有很多的Web框架能够实现这个功能,这个依赖你选择的问题。

4. 友好URL

保持所有的URL不含有一些转义符号,这是一个专门的课题,它带来的优点有:

· 容易记忆

· 偏于搜索引擎一些做SEO

· 代码比较清晰

举个例子,替换下面的URL http://example.com/some/private?service=login http://example.com/some/private/login

假如你用一个比较时髦的web服务器软件,例如Apache, Nginx or Lighttpd, 他们都提供了重写url的功能,你不用修改你的代码,就能产生漂亮的URL。

5. 程序级别的安全许可

很多SAAS都是数据库驱动的,譬如通过传递id来获取相关的信息,例如这样的URL。http://example.com/order/,用户user1登录时候可以访问自己对应的订单信息,不要想当然的认为其它用户不会手工输入这个url,user2登录时候,随机的输入order id 这样他可能会访问别人的资源,所以这个基本安全许可也很重要。

0 评论: