Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ajax—如果我在url上发送ajax请求,我可以在php页面中检查它是请求还是页面已打开?_Php_Javascript_Jquery_Ajax - Fatal编程技术网

ajax—如果我在url上发送ajax请求,我可以在php页面中检查它是请求还是页面已打开?

ajax—如果我在url上发送ajax请求,我可以在php页面中检查它是请求还是页面已打开?,php,javascript,jquery,ajax,Php,Javascript,Jquery,Ajax,出于安全目的,我想阻止用户查看或发送任何内容到我将用于ajax目的的php页面 那么,是否有任何方法可以检查页面是否因为ajax请求而被调用,或者页面是否已被打开? 自我=顶部考虑Ajax请求吗?< P>即使你阻止人们不使用Ajax请求,什么阻止人们改变Ajax请求呢? 在我看来,这几乎并没有增加安全性,尤其是在使用firebug时更容易做到 /* AJAX check */ if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && str

出于安全目的,我想阻止用户查看或发送任何内容到我将用于ajax目的的php页面

那么,是否有任何方法可以检查页面是否因为ajax请求而被调用,或者页面是否已被打开?
自我=顶部考虑Ajax请求吗?

< P>即使你阻止人们不使用Ajax请求,什么阻止人们改变Ajax请求呢?

在我看来,这几乎并没有增加安全性,尤其是在使用firebug时更容易做到

/* AJAX check  */
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
  /* special  for ajax here */
}
else
{
  //its a page request
}

这仅在使用发送此标头的JS框架时有效:-by Bergi

不,您需要其他安全模型


当然,您可以在执行Ajax请求时设置自定义http头(如),并将其与普通的“视图”请求区分开来(许多库会自动这样做)。但是一切都可能是伪造的,因此通过确定这一点就不会有安全性。

也许这会帮助您:从安全角度来看,为什么数据是从页面还是通过Ajax发送很重要?你永远不应该信任用户提供的数据,不管它是如何发送给你的。这个问题困扰着我,这增加了什么安全性?无论它是如何发送的:皇家邮政还是包裹部队,当它到达时,它仍然可能包含一些令人讨厌的东西。还有人投票支持这个问题。例如,我有一个简单的基于ajax的聊天,因此,我可以检查一下,如果聊天来自上一页,或者有人访问了url,并在其他人的帐户中添加了一些垃圾邮件,请注意,这只在使用发送此标头的JS框架时有效…任何人都可以轻松地添加自定义标头,如x_REQUESTED_和in标头,因此对于无法使用的关键操作这个,好的。我正在检查其余的内容,我只是想检查用户是否试图通过直接访问url和制作不同类型的GET帖子来添加不相关的内容