【问题标题】:Iframe shows authorized usersiframe 显示授权用户
【发布时间】:2016-07-31 09:30:39
【问题描述】:

我在我的网站中创建了一个“嵌入代码”,它只是一个 iframe 我会将此代码仅嵌入某些用户但不知道该怎么做。用户可以从授权站点检查 html 代码并在未经许可的情况下获取代码。 如何让我的网站只有授权用户? 我考虑过使用 $ _SERVER ['HTTP_REFERER'] 但是一旦你点击一个指向内部框架的链接,引用者就会丢失。

【问题讨论】:

  • 这真的取决于你想怎么做。你可以登录。您可以使用针对数据库进行测试的链接。您可以获得一个测试 MAC 地址的软件,并在其上安装 php exec()。这听起来像你在寻找意见。你的代码呢?

标签: javascript php token


【解决方案1】:

您无法避免授权人员检查内联框架的 URL 并将其透露给未经授权的人员。正确的做法是向未经授权的用户提供空白/错误页面。

您可以通过在用户登录时创建会话并在内联框架中显示的页面的源代码中验证该会话来实现这一点。

不要依赖referrer,它很容易被欺骗,有些浏览器甚至不会设置它。会话 cookie 是不可欺骗的,除非用户知道用于创建它的凭据,这使得它们获得授权,无论它们是否经过身份验证。

【讨论】:

    【解决方案2】:

    用js验证用户。

    <iframe src="verify.php">...
    

    Verify.php 包含:

    <?php
    session_start();
    $id= generate sth random;
    $_SESSION["id"]=$id;
    ?>
     <script>
    window.location="http:yourdomain/site.php?id=<?php echo $id;?>&referrer="+document.referrer;
     </script>
     Loading...
    

    现在您可以检查引荐来源网址,以验证网站是否正确,并检查 id 以检查是否没有人试图欺骗您...

    <?php
    session_start();
    if($_SESSION["id"]!=$_GET["id"] or $$_GET["referrer"]!="allowedsite.com"){
       echo "not valid";
       die();
    }
    ?>
    

    正如 Thomas Hübelbauer 所说,人们仍然可以复制您的代码。你唯一能做的就是混淆和使用相对链接。这使得复制变得困难。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-23
      • 1970-01-01
      • 1970-01-01
      • 2019-12-29
      • 1970-01-01
      相关资源
      最近更新 更多