分布式架构蹒跚学步中。低手互相勉励借鉴,高手请随意批评,有批评才有进步。
从性能、安全、易用易扩展三方面考虑。高可用性也可纳入考虑,不过方案都是固定的,与代码关系不大。
直接上图
安全框架
还是叫框架吧,叫架构容易被打。直接上图
权限管理,从注册博客那时就在考虑了,权限如何设计也是每个中级以上程序员都熟知的,略过。
一些说明:
1,数据库连接加密。
对于团队项目,成员开发项目在本地测试。测试完提交到SVN,由组长来发布。
发布的服务器被运维人员控制,所以要数据库连接字符串加密。
2,登录加密。
每次登录,后台随机产生私钥种子,生成公钥发给前台。前台每次登录发送的加密数据都不同,有效的防止传输过程中被截获密码。
3,MD5保存密码
数据库也由运维人员控制,也有被复制的风险。MD5加密作为最后一道保险。MD5据说也被做成数据库能查询了,对于商业项目可以再加点盐,对于企业项目已经足够了。
4,团队项目安全
如果有核心的技术要加密
对于单项目,混淆代码后导出jar被引用。jar中某些方法被调用时,判断当前运行的服务器是否被授权。或者像登录加密那样去登录远程服务器获取授权资格。
对于分布式架构,在dubbo上发布成服务即可。