出于安全目的,我想阻止用户查看或发送任何内容到我将用于 ajax 目的的 php 页面。
那么有什么方法可以检查页面是否由于ajax请求而被调用或页面是否已打开?self=top 是否考虑 ajax 请求?
出于安全目的,我想阻止用户查看或发送任何内容到我将用于 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
不,您将需要其他安全模型。
当然,您可以X-Requested-With
在执行 Ajax 请求时设置自定义 http 标头(如 )等(许多库会自动执行此操作),并将它们与正常的“查看”请求区分开来。但是一切都可能是伪造的,因此确定这一点并没有安全性。
即使您确实阻止人们不使用 ajax 请求,是什么阻止人们首先更改 ajax 请求?
在我看来,这几乎不会增加安全性,尤其是可以轻松地通过例如 firebug 来完成。