2008-08-18 61 views
9

确保只有经过认证的用户才能接受某些页面的某些ajax调用的最佳做法是什么?只接受来自已认证用户的某些ajax请求

例如:

比方说,我有一个名为blog.php的主网页(我知道,创造力丰富)。我们还要说,有一个页面叫做delete.php它寻找参数post_id,然后从数据库中删除一些条目。

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

现在这个机制只会在blog.php上被认证用户使用。但是,如果阻止某人只是用一堆随机数调用delete.php并删除站点中的所有内容,又该如何呢?

我做了一个简单的测试,我设置blog.php的会话变量,然后做一个AJAX调用delete.php如果会话变量被设置或不回(这不是)

什么是接受的方式来处理这种事情?


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

我只是做了另一个测试,就像我上面描述的那样,它完美地工作。

回答

8

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

3

不建议您依赖会话进行身份验证而不采取其他操作。 Read more on

相关问题