Php 如何验证AJAX调用?
我设计了一个使用AJAX的网站。我有一个名为store.PHP的PHP页面,它接受POST方法发送的数据并存储在数据库中 如何在store.php中实现身份验证?我只希望登录到我的站点的用户使用store.phpPhp 如何验证AJAX调用?,php,ajax,Php,Ajax,我设计了一个使用AJAX的网站。我有一个名为store.PHP的PHP页面,它接受POST方法发送的数据并存储在数据库中 如何在store.php中实现身份验证?我只希望登录到我的站点的用户使用store.php 目前我正在使用htaccess重定向store.php的请求,但我认为这不是一个好的解决方案。Ajax请求的安全性不是一个简单的问题。他们可能容易受到中间人攻击和重放攻击,仅举几例。我建议你读这本书。它会给你很多关于这个主题的好信息 至于您的问题,特别是:一旦设置了PHP会话,这些会话
目前我正在使用htaccess重定向store.php的请求,但我认为这不是一个好的解决方案。Ajax请求的安全性不是一个简单的问题。他们可能容易受到中间人攻击和重放攻击,仅举几例。我建议你读这本书。它会给你很多关于这个主题的好信息
至于您的问题,特别是:一旦设置了PHP会话,这些会话cookie也将应用于Ajax请求 对服务器脚本的任何AJAX调用仍将在请求中包含会话id。如果您正在站点中实施会话,则启动会话,您将能够看到当前登录用户的会话变量。您要查找的是该用户的持久状态。在PHP中实现这一点的最佳方法是利用会话
关于它有很多文档:在数据库中存储与用户关联的令牌。确保令牌是唯一的且不可猜测。还将相同的令牌存储在隐藏的表单字段中,以便将其发回页面。在服务器上确保令牌在发布的表单值中存在,并检查它是否有效。我通常只在ajax页面中包含用于在站点其余部分进行身份验证的完全相同的代码。我使用
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.
您当前在网站中使用什么进行身份验证?基于用户名/密码的身份验证。如果有一个有效的匹配项,我使用$\u SESSION来存储一些值,检查用户是否登录。会话也会在Ajax请求中发送,因此基本规则是,如果允许Ajax请求执行正常(网页)请求所执行的操作,那么您就非常安全了。哦。。为什么我不这么想!只需注意杰夫·兰伯特接受的答案是正确的。我在这里的回答中给出的建议在技术上是正确的,但是如果可能的话,最好不要实现您自己的安全性。只需使用默认会话安全性。