Javascript 实现Js小部件:依赖$#u SERVER[';HTTP#u REFERER';]变量检查主机域是否安全?

Javascript 实现Js小部件:依赖$#u SERVER[';HTTP#u REFERER';]变量检查主机域是否安全?,javascript,php,widget,cross-domain,Javascript,Php,Widget,Cross Domain,我正在实现一个Js小部件,带有源代码的小部件位于domain1.com上 小部件(查看器)的主机位于domain2.com上 在domain1.com上,我使用PHP作为服务器脚本语言 我需要的是检查是否允许小部件托管域从为小部件服务的domain1.com获取答案 我想表演这样的节目: 在domain2.com上: <html> <head></head> <body> <div id="widget-con

我正在实现一个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');
    }
?>


检查
$\u服务器['HTTP\u REFERER']
变量以授予主机域访问我的小部件是否可靠?

不,这不安全,可以随意篡改REFERER

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


你应该找些别的东西来保护你的小部件,比如https+会话。

安全是什么意思?引用可以是伪造的,但取决于你想要的安全级别,它是可以接受的还是不能接受的。我的意思是,如果引用有可能是空的或更改的。因为只有我通过widget托管页面将我的widget数据的访问权授予某个domainname.com,如果有机会,如上所述,它将不会获得任何数据