【问题标题】:Using sessiondata in another website在另一个网站上使用 sessiondata
【发布时间】:2016-07-25 17:14:31
【问题描述】:

我正在尝试从一个网站到另一个网站获取会话变量。具有变量的网站是商店,另一个是常规网站。

我想在常规网站上知道用户是否登录(仅当,我不需要知道在哪个帐户上)以及用户购物车中有多少商品。

我的计划是通过在空白页面上回显 json 对象并在其他网站上使用 jQuery.get 来获取变量来实现这一点。商店中的页面 (transferdata.php) 确实显示了正确的对象,即

{"logged":1,"cart":9}.
但是,检索此数据的页面 (getdata.php) 获取

{"logged":0,"cart":0}

transferdata.php(商店网站中的文件)的代码

# Check login status
if ($ca->isLoggedIn()) {
    $transferdata['logged'] = 1;
} else {
    $transferdata['logged'] = 0;
}

# Get amount of items in a cart
$transferdata['cart'] = count ($_SESSION['cart']['products']) + count ($_SESSION['cart']['addons']) + count ($_SESSION['cart']['domains']);

# Display transferdata
echo json_encode($transferdata);

getdata.php的代码(常规网站中的文件)

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<script>
$.get( "https://**.*******.nl/transferdata.php", function( data ) {
  $( ".result" ).html( data );
  alert( "Load was performed." );
});
</script> 

<div class="result"></div>

商店位于常规网站的文件夹中(商店位于子域中)。我正在尝试在商店的常规网站中进行导航,以便用户可以轻松地从常规网站前往商店。我需要“登录”来知道是否需要显示正常导航或登录用户的版本,并且我需要 caritemcount 显示在导航中的“购物车 (0)”中

谁能帮我解决这个问题?如果最佳答案不是 json 对象,我愿意接受建议。

【问题讨论】:

  • 让我们看一些代码。
  • 已添加代码。很抱歉没有将其包含在原始帖子中。

标签: php jquery json session get


【解决方案1】:

假设这两个站点在物理上是分开的,根据定义这是不可能的。如果您可以以这种方式请求会话数据,那将是一个严重的安全风险。

要确定不同站点的登录状态,请实施适当的技术,例如Single Sign-on

【讨论】:

  • 商店位于常规网站的文件夹中(商店在子域中)。我正在尝试在商店的常规网站中进行导航,以便用户可以轻松地从常规网站前往商店。我需要“登录”来知道我是否需要显示正常导航或登录用户的版本,并且我需要 caritemcount 显示在导航中的“购物车 (0)”中。
  • 只要 2 个应用程序不共享会话 ID 和存储空间,会话就会分开。无论如何,一次只有一个应用程序可以访问会话(因为会话将在访问期间被锁定),因此需要协作编程。我建议为购物车使用一个通用数据库,并为登录使用 SSO 技术
【解决方案2】:

使用数据库或其他共享后端数据存储。如果您通过前端发送会话数据,则用户可以对其进行操作(例如,在用户未真正登录时设置"logged":1,或设置"cart":9 以检查其他人的购物车)。

【讨论】:

    【解决方案3】:

    会话应通过其原始 URI 进行标识。

    试图通过客户端对其进行任何操作都会导致漏洞,特别是臭名昭著的漏洞:Session_fixation

    一种解决方案是在客户端或服务器本身进行身份验证后,通过对第二个资源的安全 API 调用来使用跨域请求。单点登录/社交登录等概念就是以此为基础的。

    【讨论】:

      猜你喜欢
      • 2019-05-11
      • 2016-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-09
      • 2016-04-01
      相关资源
      最近更新 更多