【问题标题】:How to control caching, in browser如何在浏览器中控制缓存
【发布时间】:2018-08-22 19:43:09
【问题描述】:

我在生产环境中有一个 Web 应用程序。当用户从网站注销并点击后退按钮时,不应将他带回网站。一旦用户注销,所有缓存都应该被清除。我浏览了一些网站,但没有得到正确的解决方案。我不知道如何实施该技术。非常感谢任何帮助/建议。 目前我在后端做了什么:

app.use(function(req,res){
    res.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); 
    res.setHeader("Pragma", "no-cache"); 
    res.setHeader("Expires", "-1"); 

});

【问题讨论】:

  • 你如何维护你的会话?正在使用什么类型的会话存储?
  • 我将其存储在本地存储内存中
  • 您没有在后端维护会话?如果是这样,那就错了。即使您清除本地存储,任何人都可以使用相同的详细信息重新登录。
  • 我将在后端实现会话。之后,让我知道进一步的实施@Hey24sheep

标签: angularjs node.js


【解决方案1】:

在浏览器端

用于管理会话的本地存储

//To clear everything Or get your item and set it to null
localStorage.clear();

用于管理会话的会话存储

//To clear everything Or get your item and set it to null
sessionStorage.clear();

用于管理会话的 Cookie

$cookies.remove("userInfo");

注意:我建议您使用带有随机 CSRF 令牌的 cookie,通过将随机生成的会话密钥存储在 SessionStorage 中来保护您的客户端免受 CSRF 的影响。

由于您目前没有在后端维护会话,因此我希望您阅读此线程: How to end a session in ExpressJS.
还有这个https://expressjs.com/en/advanced/best-practice-security.html

【讨论】:

    猜你喜欢
    • 2015-02-07
    • 2011-07-17
    • 1970-01-01
    • 1970-01-01
    • 2010-12-19
    • 2012-07-15
    • 1970-01-01
    • 1970-01-01
    • 2020-11-19
    相关资源
    最近更新 更多