Tag: cookie

在Rails 5控制器集成测试中设置cookie.signed

想象一下,有一个控制器集成测试调用控制器方法的场景,其中cookie.signed用于某些完整性检查。 调节器 # app/controllers/foo_controller.rb def index entity = FooEntity.find_by_id(params[:id]) if entity.nil? raise ActionController::BadRequest, ‘Could not find requested entity.’ else @is_authorized = entity.token == cookies.signed[:token] if @is_authorized # Success! The path to be tested. else raise ActionController::BadRequest, ‘Unauthorized cookie token.’ end end end 控制器测试 # app/test/controllers/foo_test.rb require ‘test_helper’ class FooControllerTest < ActionDispatch::IntegrationTest test 'should be working' […]

选择足够的Rails会话存储

我目前正在使用基于memcached的会话存储( https://github.com/mperham/dalli )。 memcached服务器有时不可用(“没有服务器可用”),然后我的用户再也无法使用该应用程序了。 目前,我怀疑基于memcached的会话是否是正确的决定。 由于我只在会话中存储了很少的密钥,因此我正在考虑切换回cookie存储区。 或者我应该考虑使用ActiveRecord商店? 任何建议? 谢谢!

会话和cookies.permanent 之间的区别

session[:food]=”pizza”和cookies.permanent[:food]=pizza之间的区别? 我试着阅读rails文档,它说: Rails 2引入了一个新的默认会话存储CookieStore。 CookieStore将会话哈希直接保存在客户端的cookie中。 然后我不明白,如果会话[:food]保存在cookie中,所以cookies.permanent [:food]有,那有什么区别?

用于清除Rails中基于cookie的会话存储的命令

我经常想清除Rails中的会话存储,特别是默认的基于cookie的会话存储。 有些网站似乎暗示了这一点 rake tmp:sessions:clear 完成这项任务,但似乎没有。 清除基于cookie的会话存储的正确方法是什么?

从Rails中的任何位置访问“会话密钥”cookie名称

我们正在构建一个用于在iframe Facebook应用程序中使用的Rails插件,并且我们需要检查是否已经设置了Rail的会话ID cookie。 默认情况下,此cookie名为_myprojectname_session ,我们需要找出的是cookie本身的实际名称。 因此,如果没有设置,我们可以进行一些重定向以确保设置cookie。 我们如何从任何地方访问该死的名称? 或者至少从控制器内部?

使用Rails自动登录?

我正在尝试使用Rails的Restful-Authentication插件启动一个简单的身份validation系统,我只是想知道它是如何工作的,b / c我似乎无法弄清楚对cookie的要求是什么,以及如何使它如此浏览器总是记得你(6个月以上)。 几个问题: 1)你如何为ruby的restful_authentication做记住_me? 我似乎找不到一个好的单行来解决这个问题…… 如果用户注册并检查“记住我”,那么rails应用程序如何在用户没有做任何事情的情况下获取会话/ cookie,而是在下次访问该页面时进入该页面,比如3个月后? 2)我是否需要向服务器发送某种信息,比如他们的IP地址或其他什么? 什么是cookies[:auth_token] ,在哪里定义? 目标是:我不希望他们再次输入他们的电子邮件/密码,就像StackOverflow如何工作:)

如何手动解密Rails 5会话cookie?

我有权访问 config.action_dispatch.encrypted_cookie_salt config.action_dispatch.encrypted_signed_cookie_salt secrets.secret_key_base 完整的cookie字符串(包括– ) 我在Rails 4中看到了这样做的方法( Rails 4:如何解密rails 4会话cookie(给定会话密钥和秘密) ),但这些似乎在Rails 5中不起作用。

如何让authlogic使用Rails会话而不是自己的cookie?

我希望authogic永远不会设置user_credentials cookie,只使用标准的Rails会话cookie。 我看到Session包含在Cookies之后的Authlogic::Session::Session::Base 。 如果我登录我的应用程序然后删除user_credentials cookie,我仍然保持登录状态。所以显然authlogic是在两个地方存储凭据并检查这两个地方? 或者忽略cookie但仍然设置它? 如何让它永远不会设置或引用user_credentials cookie?

rails:如何在会话中保存大数组? (ActionDispatch ::cookies:: CookieOverflow)

我试图在一个远大于4 KB的会话中保存一个数组。 在这种情况下:发生:ActionDispatch :: Cookies :: CookieOverflow错误。 有没有人提示如何在会话中保存更大的数组? 将它保存到数据库不是我想要的。 谢谢,马库斯

使用Rails存储加密的cookie

我需要在Rails中的cookie中存储一小段数据(少于10个字符),我需要它是安全的。 我不希望任何人能够读取该数据或注入他们自己的数据(因为这会打开应用程序进行多种攻击)。 我认为加密cookie的内容是要走的路(我应该签名吗?)。 最好的方法是什么? 现在我正在这样做,这看起来很安全,但对于那些比我更了解安全性的人而言,很多东西看起来都很安全,然后发现它并不安全。 我以这种方式保存秘密: encryptor = ActiveSupport::MessageEncryptor.new(Example::Application.config.secret_token) cookies[:secret] = { :value => encryptor.encrypt(secret), :domain => “example.com”, :secure => !(Rails.env.test? || Rails.env.development?) } 然后我就这样读它: encryptor = ActiveSupport::MessageEncryptor.new(Example::Application.config.secret_token) secret = encryptor.decrypt(cookies[:secret]) 那安全吗? 有没有更好的方法呢? 更新 :我了解Rails的会话及其安全性,通过签名cookie和可选地存储会话服务器端的内容,我确实使用会话来实现它的目的。 但我的问题是关于存储cookie,这是我在会话中不想要的一条信息,但我仍然需要它是安全的。