1

不太清楚如何授权 PHP AJAX 调用 session_id 或任何 $_SESSION 变量实际上。

它是否应该在登录时存储在数据库中,并在每次 AJAX 调用时针对 $_SESSION 存储进行引用?

我知道这些主题可能已经被无限地讨论过,但我似乎找不到明确的答案。

提前致谢!

启示

哇,所以授权仅限于是否有会话?害怕。让我想知道这是否就是 .net 的 web.config 的拒绝 =“?” 是在做。感谢你的帮助!

4

1 回答 1

2

会话始终存在,因为会话数据是服务器端的。只要他们拥有授予他们该会话的 cookie,他们就会被视为授权用户。

在通过 AJAX 调用的文件的开头,只需执行以下操作:

<?php

session_start();
if(!isset($_SESSION['id'])) {
    exit;
}

?>

除非他们有一个活动会话,否则不会执行任何操作。

您也可以阻止人们直接访问您的 AJAX 文件,只需添加以下内容:

<?php

if(!isset($_SERVER['HTTP_X_REQUESTED_WITH']) OR ($_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest')) {
    exit;
}

?>

有人仍然可以解决这个问题,但总比没有好。

于 2012-10-02T00:29:22.457 回答