我对在Thread.current
哈希表中存储信息的做法(例如current_user,当前子域等)的看法一直存在分歧。已经提出了将该技术作为简化模型层中的后续处理(查询范围,审计等)的一种方法。
许多人认为这种做法不可接受,因为它破坏了MVC模式。其他人则对这种方法的可靠性/安全性表示担忧,而我的两部分问题主要针对后者。
Thread.current
在整个周期中,是否保证哈希可以对一个且只有一个响应可用并且是私有的?我了解到,在响应结束时,线程很可能会移交给其他传入请求,从而泄漏存储在中的任何信息
Thread.current
。在响应结束之前清除此类信息(例如通过Thread.current[:user] = nil
从控制器执行after_filter
)是否足以防止此类安全漏洞?
谢谢!朱塞佩