做一个面向互联网的程序的话,首先安全稳定第一,然后是性能第二,不能把敏感数据保存到客户端里,容易修改,但把安全数据都放到数据库里,,但我想要在保证安全的情况下优化性能,在用户登录成功后,顺便利用 session 存储一些安全鉴别的数据到用户的子对象里。
安全数据的话,全首先想到的是 RBAC 权限体系。我目前有一个类似享元模式的思路,在 tomcat 启动时,将数据库中所有的角色数据载入到服务端的某个缓存库里,例如 HashMap 中,用户登录之后,查询用户的角色权限,依据角色 id 找到角色缓存对应角色数据,并将引用保存的用户的子对象里,在存入 session。这样用户登录后的操作权限查询比每次查询用户权限最少 5 个表(基础 RBAC 体系限要求最少 5 个表)的速度要快一些吧,也比查询角色数据,然后直接保存在 session 要好一些把。
另外,在服务端上,大家有什么好的能兼顾安全与性能的办法和设计思路架构呢。
1
KentY 2019-11-29 22:58:21 +08:00
什么叫单机 web 程序?
你的这个程序写好了吗? 如果写好了,并且你认为你的程序运行上有性能问题, 你说的登录那段儿应该不是性能问题的瓶颈. 如果还没写好, 先别想着怎么把性能优化到极致. 往往开发者容易做 premature optimization |