Rails ( set_no_cache method) Cannot disable browser caching in Safari and Opera

后端 未结 3 471
后悔当初
后悔当初 2021-01-02 03:28

After using Devise for my authentication, I found that there was a security hole in that, after the user logs out, the session variables are preserved. This allows anyone to

相关标签:
3条回答
  • 2021-01-02 04:06

    I found that doing this in my application controller worked great for development.

    after_filter  :expire_for_development
    
    protected
    
    def expire_for_development
      expires_now if Rails.env.development?
    end
    
    0 讨论(0)
  • 2021-01-02 04:12

    First of all, for any issues with cache, use Mark Nottingham's guide on HTTP caching

    Cache-Control: no-cache, no-store, must-revalidate
    Pragma: no-cache
    Expires: 0
    

    Try this.

    0 讨论(0)
  • 2021-01-02 04:15

    I faced the same problem and found a good solution and I blogged it to

    http://www.fordevs.com/2011/10/how-to-prevent-browser-from-caching-a-page-in-rails.html

    To add ‘no-cache’, add the following lines @ the application_controller.rb file

    before_filter :set_no_cache
    

    and the function

    def set_no_cache
        response.headers["Cache-Control"] = "no-cache, no-store, max-age=0, must-revalidate"
        response.headers["Pragma"] = "no-cache"
        response.headers["Expires"] = "Fri, 01 Jan 1990 00:00:00 GMT"
    end
    
    0 讨论(0)
提交回复
热议问题