昨天和猪讨论了一下关于BS构架的系统应该注意那些问题,自己想了想,整理了一下,HOHO,都是一些拙见,希望大家来给些我没有提到的东西。
既然是B/S机构的,那先从B开始说吧:)
B == Browser (浏览器、拼错了别骂我。)一般就是指客户端,一般就是客户端提出请求,然后服务器端响应请求,其中还设计到检索、更新数据库。在客户端应该注意的问题,我归纳了下面几点:
1,关于控件的设置
这里要说的就是:对于需要用户填写的表但项目(String类型),一定要把长度固定。并且长度不能大于对应的数据库里字段长度。尽量让客户少填写数据,尽量把可以封装的数据封装起来,比如 需要客户填写性别的时候,给出2个单选项目, 在需要用户填写出生年月的时候,就分别给出年、月、日的下拉菜单,这样都比只给出一个文本框要好。
2,关于显示
对于数据库里的字段在显示给客户的时候,一定要进行htmlEncode(编码)以后再输出,避免数据库包含了不安全代码。
下面再说说服务器端应该注意的事项:
1,尽量不要把出错信息返回给浏览器,这个是在你掌握服务器一定权限的情况下,还有就是要尽量避免错误。
2,对于客户端提交的数据,首先要进行检查,一是要检查数据类型正确与否,二是要检查数据长度,三还要检查是否包含非法字符,这里的非法字符是指一些影响数据库操作的字符。这里推荐使用正则表达式来检查数据的合法性。关于SQL注入就不多说了,因为这个你要前面提到的三点做好了,这种问题是不会出现的。
3,对于有些系统要防止数据库被下载,关于方法,自己去查查吧。(HOHO)
暂时就想到这么多,等我来慢慢完善吧。别拿东西丢我吖。。。