我一直在开发多租户MVC应用程序。
当用户登录时,我的应用程序通过查看来自其他数据库的CompanyName数据来决定将哪个数据库用于登录用户。
为减少数据库流量,我在用户登录时从DB中提取了CompanyName值,而不是将此值分配给cookie。它运作良好,但是;
我的犹豫:如果用户可以使用cookie值,可以访问另一家公司的数据库。
在客户端保留敏感数据的最佳做法是什么?加密的cookie或其他什么?
答案 0 :(得分:1)
最佳做法是不在客户端存储任何数据。将数据存储在服务器会话中。这样,只有会话ID存储在客户端上。
ASP.net自动管理cookie以将服务器会话分配给客户端,并且还内置了一些安全检查以防止客户端猜测有效的会话ID,会话劫持和会话固定。 (务必使用ASP.net中的集成机制来进行用户登录)