执行前Ajax验证页面

时间:2013-06-22 11:35:36

标签: php ajax

我有一个ajax.php文件,我的所有ajax调用都指向了当前调用要求执行的脚本的额外参数。我的问题是我想将某些脚本限制为仅由特定页面执行,例如sendComment.php只应从www.mysite.com/user/{any user}调用。

我所做的是将此代码放在我想限制的每个脚本之上:

if(strstr($_SERVER['HTTP_REFERRER'],'mysite.com/{page_allowed_to_exec_script}'){
    Then do stuff here
}

但我注意到的是,并非所有浏览器都支持HTTP_REFERRER(我可能拼写错误,我是通过内存编写的),而且不是跨浏览器,这也是一个痛苦屁股必须在所有文件中对这些内容进行硬编码,并且在更改内容时会更加痛苦。我正在寻找一种方法,我可以在所有页面的数组中包含所有脚本能够执行它们,并在开始时检查ajax.php文件。

有谁知道如何实现这一目标?

1 个答案:

答案 0 :(得分:1)

即使所有浏览器都可能不会发送“referer”,因为某种“代理”,“防火墙”或“安全”套件会将其删除甚至更改它。所以你可以相信它。

如果您控制引荐页面,您可以使用会话,cookie或URL来传递信息,如果您觉得它至关重要。如果它绝对至关重要,那么你唯一的选择就是会议。其他两个很容易被删除。