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


ajax- if I send an ajax request on a url, can i check in the php page if it is a request or the page has been opened?

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

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

/* 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头(如X-Requested-With)或类似的东西(许多库会自动这样做),并将它们与普通的"view"请求区分开来。但是一切都可以伪造,所以通过确定这一点不可能有安全感。

即使你确实阻止人们不使用 ajax 请求,是什么阻止人们首先更改 ajax 请求?

在我看来,这几乎不会增加安全性,尤其是例如,这可以通过Firebug轻松完成。