对于每个与安全相关的Grails教程的90%,它们会告诉您将User对象存储在会话范围的变量中。这一切都很简单,但我想知道它是否太好了,尤其是像Spring Security这样的插件提供了更多功能。
对于简单的“我是用户,因此我有权查看/编辑我自己的域对象”我开发的应用程序,我将用户对象存储在会话中。但是,这让我想到了Grails如何在自己的实现中支持J2EE安全性和会话( 在cookie中使用临时会话ID,对吧?)。此外,像cookie注入和跨站点/流浪JS这样的攻击有多脆弱?
我真的不想花时间学习,集成和维护可能不需要它的应用程序的插件,所以我的问题是,Grails的会话实现对于简单的应用程序是否足够安全,并且有一个非常好的理由我应该使用安全插件,即使是这些琐碎的任务?
另一方面,如果有人能指出我的OpenID / Facebook登录实施方案,那就太棒了。
答案 0 :(得分:3)
关于安全问题,我总是建议您更喜欢经过验证和广泛采用的解决方案而不是您自己的滚动安全实施。 Spring Security成立于2003年,名为Acegi,为您的安全问题带来了超过八年的经验和开发。
正如您已经指出Grails Spring Security插件,您应该看一下OpenID插件Spring Security OpenID,它扩展了Spring Security Core并为您提供OpenID支持。
答案 1 :(得分:2)
我应该使用安全插件来解决这些琐碎的任务吗?
...在基础层面上使用插件也是微不足道的,那么失去了什么呢? Screencast to get you started