php - 仅接受来自经过身份验证的用户的某些 ajax 请求

标签 php ajax authentication

确保仅接受经过身份验证的用户对特定页面的特定 ajax 调用的最佳做法是什么?

例如:

假设我有一个名为 blog.php 的主页面(我知道,创意无处不在)。我们还假设有一个名为 delete.php 的页面,它查找参数 post_id,然后从数据库中删除一些条目。

在这个非常人为的示例中,blog.php 上有一些机制可以通过 ajax 向 delete.php 发送请求以删除条目。

现在这个机制将只对 blog.php 上的经过身份验证的用户可用。但是,如何阻止某人使用一堆随机数调用 delete.php 并删除站点中的所有内容?

我做了一个快速测试,我在 blog.php 中设置了一个 session 变量,然后对 delete.php 进行了 ajax 调用,以返回是否设置了 session 变量(事实并非如此)

处理此类事情的可接受方式是什么?


好的。我第一次尝试这个的时候一定是疯了。

我刚刚做了另一个测试,就像我上面描述的那样,它运行良好。

最佳答案

您尝试使用 session 变量是正确的。一旦您的用户通过身份验证,您应该将该信息存储在他们的 session 中,以便每个后续页面 View 都能看到该信息。确保在访问 $_SESSION 之前在两个页面(blog.php 和 delete.php)上都调用了 session_start()。还要确保您启用了 cookie——如果没有,您应该在查询字符串中传递一个附加参数,通常是 PHPSESSID=<session_id()>。

关于php - 仅接受来自经过身份验证的用户的某些 ajax 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15366/

相关文章:

php - 每行打开购物车产品

php - 可点击的 div 标签不适用于鼠标悬停功能

c# - 将一个局部 View 数据传递给另一个局部 View

javascript - 我可以改进这个 AngularJS/AJAX javascript 片段吗?

java - struts2 带有操作的确认框

php - 如何在 WAMP、Windows 7 上安装 PEAR 包?

php - mySQL用相同的值更新多行

python - 有没有办法在不提供主密码的情况下访问 Windows 中的 key 环?

authentication - ERR 客户端发送了 AUTH,但未设置密码

security - 登录用户的SSL?