ajax-如果我在网址上发送ajax请求,我可以检查php页面是否是请求或页面已被打开?

时间:2012-06-27 10:05:51

标签: php javascript jquery ajax

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

那么有什么方法可以检查是否因为ajax请求而调用了页面或者页面已被打开? self = top是否考虑ajax请求?

3 个答案:

答案 0 :(得分:2)

/* 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

答案 1 :(得分:1)

不,您需要其他安全模型。

当然,您可以在执行Ajax请求时设置自定义http标头(如X-Requested-With)等(许多库会自动执行此操作),并将它们与正常的“视图”请求区分开来。但是一切都可以伪造,所以通过确定它就没有安全性。

答案 2 :(得分:0)

即使您确实阻止了不使用ajax请求的人,也阻止人们首先更改ajax请求?

在我看来,这几乎没有增加任何安全性,特别是在使用firebug时可以轻松实现。