单机 web 程序,有哪些兼顾安全与性能的设计思路?

2019-11-27 15:21:29 +08:00
 tctc4869

做一个面向互联网的程序的话,首先安全稳定第一,然后是性能第二,不能把敏感数据保存到客户端里,容易修改,但把安全数据都放到数据库里,,但我想要在保证安全的情况下优化性能,在用户登录成功后,顺便利用 session 存储一些安全鉴别的数据到用户的子对象里。

安全数据的话,全首先想到的是 RBAC 权限体系。我目前有一个类似享元模式的思路,在 tomcat 启动时,将数据库中所有的角色数据载入到服务端的某个缓存库里,例如 HashMap 中,用户登录之后,查询用户的角色权限,依据角色 id 找到角色缓存对应角色数据,并将引用保存的用户的子对象里,在存入 session。这样用户登录后的操作权限查询比每次查询用户权限最少 5 个表(基础 RBAC 体系限要求最少 5 个表)的速度要快一些吧,也比查询角色数据,然后直接保存在 session 要好一些把。

另外,在服务端上,大家有什么好的能兼顾安全与性能的办法和设计思路架构呢。

2499 次点击
所在节点    Java
2 条回复
KentY
2019-11-29 22:58:21 +08:00
什么叫单机 web 程序?
你的这个程序写好了吗? 如果写好了,并且你认为你的程序运行上有性能问题, 你说的登录那段儿应该不是性能问题的瓶颈.

如果还没写好, 先别想着怎么把性能优化到极致. 往往开发者容易做 premature optimization
tctc4869
2019-12-02 09:55:17 +08:00
@KentY 单机 web 程序,就是用一台服务器挂 web 程序,不是集群分布式。安全的话,主要是请求漏洞与爬虫问题。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/623617

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX