实现Js小部件:依靠$ _SERVER ['HTTP_REFERER']变量来检查主机域是否安全?

时间:2012-08-31 12:48:23

标签: javascript php widget cross-domain

我正在实现一个Js小部件,包含源代码的小部件在domain1.com上 小部件(查看者)的主机位于domain2.com

在domain1.com上,我使用PHP作为服务器脚本语言。

我需要检查是否允许小部件托管域从提供小部件服务的domain1.com获得答案。

我正在考虑执行这样的事情:

在domain2.com上:

<html>
    <head></head>
    <body>
        <div id="widget-container"></div>        
    </body>
    <script src="http://domain1.com/widget/viewer.php" type="text/javascript"></script>
</html>

在domain1.com上:

<?php 
    if(in_array($_SERVER['HTTP_REFERER'], $allowedDomains)){
       /* echo all widget goodness*/
    }else{
        die('you\'ve not permission to get this service');
    }
?>

检查$_SERVER['HTTP_REFERER']变量以授予主机域访问我的小部件是否可靠?

1 个答案:

答案 0 :(得分:0)

不,它不安全,引用者可以随意篡改。

请参阅referer-control

事实上,请求中的任何内容都可以伪造。

您应该查看其他内容以保护您的小部件,例如https +会话。