对如何使用session_id或实际上对任何$ _SESSION变量授权PHP AJAX调用不太清楚。
是否应该在登录时存储在数据库中并在每次AJAX调用时针对$ _SESSION存储进行引用?
我知道这些主题可能已经无限期地讨论过了,但我似乎无法找到明确的答案。
提前致谢!
启
哇,所以授权仅限于是否有会话?害怕。让我想知道是不是这就是.net的web.config的deny =“?”是在做。谢谢大家的帮助!答案 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;
}
?>
有人仍然可以解决这个问题,但它总比没有好。