9

确保仅从经过身份验证的用户接受对某些页面的某些 ajax 调用的最佳实践是什么?

例如:

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

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

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

我做了一个快速测试,在 blog.php 中设置了一个会话变量,然后对 delete.php 进行了 ajax 调用,以返回是否设置了会话变量(它不是)

处理这类事情的公认方法是什么?


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

我刚刚做了另一个测试,就像我上面描述的那样,它工作得很好。

4

2 回答 2

7

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

于 2008-08-18T23:20:46.600 回答
2

不建议您在不采取其他操作的情况下依赖会话进行身份验证。 阅读更多

于 2008-08-19T21:09:28.860 回答