【问题标题】:Handling session in real life在现实生活中处理会话
【发布时间】:2018-07-12 00:37:23
【问题描述】:

我创建了一个虚拟网站,在其中将一些data 存储在session Storage 中,并基于此更改界面的features。我知道这根本不是secure,所以我很好奇这在现实生活中是如何做到的?

这是我的代码的 sn-p,因此您可以得到 idea 的内容。我在server side 上使用PHP。在这种情况下,这会是使用 PHP $_SESSION 的方式吗?

function sessionUser() {


      // for ADMIN view 
      if ( sessionStorage.getItem( 'role' ) == "admin" ) {


          showWelcomeMessage();
          showAdminInterface();
          getProductData();
          getUserData();
          getSubscriberData();
      }

      // for USER view 
      if (sessionStorage.getItem( 'role' ) == "user" ) {

          showWelcomeMessage();
          showUserInterface();
          getProductData();
      }

  }

【问题讨论】:

  • 嗯...... nnnno。您无法像在 php 中那样访问浏览器 html5 存储。
  • @IncredibleHat 我想他们是在说他们会使用$_SESSION 而不是会话存储
  • @Pete ...啊。是的,这会更有意义,哈哈;)
  • 我需要访问它,才能做我想做的事吗?我只需要一个替代品。
  • 我会使用 php 会话,但要确保它是安全的:stackoverflow.com/questions/5081025/…

标签: javascript php session session-storage


【解决方案1】:

如果您想在这种情况下使用 PHP - 您可以类比地使用 $_SESSION['role']sessionStorage.getItem('role'),但在服务器端的 PHP 脚本中。根据 PHP 中的会话值,您可以处理要显示给用户的模板,也可以使用普通的 PHP 或使用现有的模板引擎,如 Twig 或 Blade。或者,如果您只想向用户发送 API 数据而不是整个模板,您也可以通过存储在 $_SESSION 变量中的值来调节数据来做到这一点。没有真正的太多区别 - 最重要的区别是没有人可以很容易地看到存储在服务器端的会话值(除非有人没有窃取您的 cookie,这些 cookie 用于识别与浏览器的会话,并假装是你),所以在服务器端会话中你可以存储更多的机密数据,包括tokens。其他区别在于 生命周期到期 触发器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-08
    • 1970-01-01
    • 2012-12-24
    • 2018-03-02
    • 1970-01-01
    • 2019-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多