bow*_*ior 13 authentication ruby-on-rails browser-cache http-headers devise
用户退出后,如果他们点击后退按钮,他们可以在退出之前返回到他们所在的最后一页.
我正在处理的应用程序通常用于公共计算机(例如图书馆或计算机实验室),我想阻止用户查看以前用户会话中的任何内容.
我正在使用Rails 3和Devise,顺便说一下,虽然看起来这个问题会出现任何框架或登录机制.
解决方案是使用标头/元标记来禁用浏览器缓存吗?有人知道解决这个问题的宝石或教程吗?
期待您的建议.
小智 6
在应用程序控制器中使用以下代码..它适用于我.希望这会帮助你.谢谢!!
码
before_filter :set_cache_buster
def set_cache_buster
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
Run Code Online (Sandbox Code Playgroud)
在 Rails 上,您可以轻松设置放置在 public
文件夹中的,并使用积极的缓存,并挑选其他可以安全缓存的内容,例如公共“关于”页面。
您应该设置Cache-Control: no-cache
为阻止浏览器缓存包含敏感信息的 HTML 页面、XML、JSON(基本上任何只有通过正确登录才能访问的内容),并为静态资产(如 css 和图像)设置更积极的缓存。
是的,您必须使用 http 标头来指示浏览器不要缓存页面。OWASP 的此页面 ()包含有关如何执行此操作的信息。
根据上面的文章,您可以设置以下标头来指示浏览器不缓存页面:
HTTP/1.1:
Cache-Control: no-cache
Run Code Online (Sandbox Code Playgroud)
或者
HTTP/1.0:
Pragma: no-cache
Expires: <past date or illegal value (e.g., 0)>
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助。
归档时间: |
|
查看次数: |
5230 次 |
最近记录: |