【问题标题】:only allow specific URL to access my sites只允许特定 URL 访问我的网站
【发布时间】:2017-06-08 06:22:36
【问题描述】:

我需要一个用任何语言编写的代码,它是安全的,并且只允许一个特定的 url 作为 mypage 的引用 url。您可以使用密码、cookies 和任何您想要的东西,但最后,该页面只有在来自特定 URL 时才能查看。(已编辑:)我想要完整的代码到复制和粘贴,然后我会以后通过修改和改进您提供的代码慢慢学习它。

【问题讨论】:

  • 您不能信任来自客户端的任何内容,包括引用者,因此没有安全的方法可以知道用户来自哪个 URL。见stackoverflow.com/questions/3104647/how-to-spoof-http-referer
  • 您可以访问推荐服务器吗?如果是这样,您可以编写一个基于哈希的密钥,您可以使用它来检查用户是否来自允许的服务器(不管 IP,任何具有哈希/代码的服务器都可以允许访问)。您可以基于用户的 IP、登录名或其他任何内容以及秘密哈希值并通过 SHA、AES 等函数运行它,然后将该值作为 GET 或 PUT 参数提供给目标服务器。这样窃取哈希(中间人)就不会那么容易了。

标签: javascript php html ssl


【解决方案1】:

尝试使用HTTP_REFERER,它返回引用用户代理的页面地址。示例:

if ($_SERVER['HTTP_REFERER']  !== "ACCESSABLE_URL_HERE") {
    // do something you want
}

【讨论】:

    【解决方案2】:

    在 PHP 中,您可以使用 $_SERVER 是一个 PHP 超级全局变量,它保存有关标头的信息。

    <?php
    echo $_SERVER['SERVER_NAME'];
    echo "<br>";
    echo $_SERVER['HTTP_HOST'];
    echo "<br>";
    echo $_SERVER['HTTP_REFERER'];
    
    
    $url = $_SERVER['HTTP_REFERER'];
    $urlParse = parse_url($url);
    if($urlParse['host'] !== 'test.com') 
    {
       die("you have not permission to access");
    }
    ?>
    

    【讨论】:

    • 使用referer并不是一个安全的方法,他特别要求。您可以使用 ModifyHeaders 等浏览器插件来提供您想要的任何引用。
    猜你喜欢
    • 2014-10-22
    • 2014-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-17
    • 1970-01-01
    • 2011-07-03
    相关资源
    最近更新 更多