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

时间:2008-08-18 23:18:03

标签: php ajax authentication

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

例如:

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

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

现在,这种机制只适用于blog.php上经过身份验证的用户。但是什么阻止某人用一堆随机数调用delete.php并删除网站上的所有内容?

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

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


行。我第一次尝试这个时一定很疯狂。

我刚做了另一个测试,就像上面描述的那样,它完美无缺。

2 个答案:

答案 0 :(得分:7)

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

答案 1 :(得分:2)

不建议您在不执行其他操作的情况下依赖会话进行身份验证。 Read more on