出于安全目的,我想阻止用户查看或发送任何内容到我将用于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轻松完成。