Play中的无状态操作模式!据说框架不如有状态模式安全。 它如何影响Play框架,是否可以改善关键公共Web应用程序的安全性缺陷?
答案 0 :(得分:6)
首先,你说无国籍人不太安全吗?你有什么特别的理由认为是这种情况吗?
无状态模型的想法是,您不会在服务器端不必要地将数据存储在会话中,这导致您必须在会话期间在同一服务器上继续“会话聊天”。
如果您想模仿J2EE会话,那么您只需使用session.id
并将所有状态存储在数据库中,并在会话结束时删除。
会话cookie本身已签名,因此无法被篡改,因此无需担心有人可以劫持会话ID,但如果您特别担心,那么您只需将自己的标识符存储在会话cookie中,并使用Crypto
实用程序类对其进行加密,该实用程序类使用应用程序的密钥来加密/解密数据。
无状态只是心态的改变,只要你不会在会话中不必要地存储数据(这可能是你来自哪里),那么你应该很少担心。
答案 1 :(得分:0)
并不是说Play的无状态模型不那么安全,只是没有像Java Security那样可以与之相媲美的Java安全库。
目前可用的安全模块非常基础,并且不提供Spring Security的三分之一功能。
在开发出与Spring Security类似的安全模块之前,我担心在企业应用程序世界中游戏无法发挥作用。目前,对于简单的博客应用程序来说这很好。
很可惜Spring Security依赖于Spring和servlet API。