将PHP session_id存储在MySQL中以进行AJAX授权?

时间:2012-10-02 00:21:25

标签: php mysql ajax authorization sessionid

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

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

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

提前致谢!

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

1 个答案:

答案 0 :(得分: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;
}

?>

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