如何验证AJAX调用?

时间:2011-04-25 20:51:29

标签: php ajax

我设计了一个使用AJAX的网站。我有一个名为store.php的PHP页面,它接受POST方法发送的数据并存储在数据库中。

如何在store.php中实现身份验证?我只希望登录我网站的用户使用store.php。

目前我正在使用htaccess来重定向store.php的请求,但我认为这不是一个好的解决方案。

5 个答案:

答案 0 :(得分:1)

对服务器脚本的任何AJAX调用仍将在请求中包含会话ID。如果您在站点中实现会话,则启动会话,您将能够看到当前登录用户的会话变量。

答案 1 :(得分:1)

将与用户关联的令牌存储在数据库中。确保令牌是唯一的并且不可猜测。还将相同的标记存储在隐藏的表单字段中,以便将其发布回页面。确保服务器上已发布的表单值中存在令牌,并检查它是否有效。

答案 2 :(得分:0)

Ajax请求的安全性并不是一件简单的事情。他们可能容易受到中间人攻击和重放攻击的影响,仅举几例。我建议你阅读这本书:http://www.amazon.com/Ajax-Security-Billy-Hoffman/dp/0321491939。它将为您提供有关该主题的大量有用信息。

至于你的问题,具体来说:一旦你的PHP会话被设置,这些会话cookie也将适用于Ajax请求。

答案 3 :(得分:0)

您正在寻找的是用户的持久状态。在PHP中实现它的最佳方法是使用会话。

有很好的文档:http://www.php.net/manual/en/book.session.php

答案 4 :(得分:0)

我通常只是在ajax-called页面中包含我用于在我网站的其余部分进行身份验证的完全相同的代码。我使用SESSION来保存sessionID,其余的在我的数据库中处理。我通常最后只是添加这样的一行......

require_once('loginProcedures.php'); 
//Login Authentication takes place here using SESSION ID

if (!$me['validLogin']) die("Invalid Authentication");

//perform actions and echo your result for a valid login.