Php 身份验证后加载iframe

Php 身份验证后加载iframe,php,curl,facebook-apps,Php,Curl,Facebook Apps,我正在为这个特定场景寻找一个安全的解决方案: 我有一个index.php文件(比如www.my-app.com/index.php) 我必须通过HTTP将身份验证详细信息发布到www.domain.com/login 验证登录后,我必须在index.php中的iframe中加载响应 在研究过程中,我发现了以下解决方案 解决方案#1:使用javascript(jquery)/简单html表单提交 登录www.domain.com的用户名和密码,并将目标作为 那个特别的iframe。因此,应用程序在

我正在为这个特定场景寻找一个安全的解决方案:

  • 我有一个index.php文件(比如www.my-app.com/index.php)
  • 我必须通过HTTP将身份验证详细信息发布到www.domain.com/login
  • 验证登录后,我必须在index.php中的iframe中加载响应
  • 在研究过程中,我发现了以下解决方案

    解决方案#1:使用javascript(jquery)/简单html表单提交 登录www.domain.com的用户名和密码,并将目标作为 那个特别的iframe。因此,应用程序在该iframe中加载

    我的看法:这可能不安全,因为用户名和密码可能被嗅探,会话可能被劫持。我不知道怎么做,但这似乎是可能的。(甚至可以在源代码中看到隐藏变量)

    解决方案#2:

    使用php curl提交用户名和密码,并在 iframe

    (不太清楚如何实现这一点。)

    限制:不是php方面的专家(我想很明显)。一段代码片段会有所帮助

    是否有其他方法以安全的方式实现相同的技术


    我见过facebook在他们的页面标签应用程序上也做了同样的事情。我相信大多数支付框架都是这样做的。但是他们是怎么做到的呢?

    我对CURL没有太多的知识。它可能会帮助你找到第二个解决方案(PHP-CURL)

    因此,您可以在
    iframe

    我必须通过HTTP将身份验证详细信息发布到www.domain.com/login

    从您的安全考虑,我推断这些身份验证详细信息不是您应用程序的当前用户的身份验证详细信息,而是使用您的固定帐户访问domain.com服务所需的一般身份验证详细信息

    如果是这样的话,我会说这是被设计打破的。您不能以任何保存方式使用登录凭据让客户端登录到其他服务

    如果domain.com上的服务是您自己的,那么您必须考虑其他方法来使用它对客户机进行身份验证,而不必向该客户机提供登录凭据

    如果您使用的是第三方服务,请他们提供更好的解决方案


    顺便说一句,这与Facebook到底有什么关系?

    Facebook页面标签应用程序就是这样工作的——我们有一个服务器,在domain.com/pagetabapp上托管该应用程序。无论何时facebook用户在商业页面上访问我们的应用程序,FB都会向我们的服务器发布某些信息。然后我们处理它并将其重定向到应用程序url。然后我们的应用程序被加载到业务页面的iFrame上。您不必向我解释页面选项卡应用程序在一般情况下是如何工作的:-)仍然没有看到您的问题,但是…您知道他们将如何实现它吗?实现什么?我仍然看不到你想把任何登录数据发送到哪里,也看不到你真正关心的安全问题是什么。你认为他们会如何实施它?我想我需要更清楚地说明我为什么要这样做/想要这样做!客户的网站位于my-app.com。他正在使用我们在domain.com上的应用程序在他的页面上的iframe中显示。现在,我们的应用程序可以有任意数量的客户。我们需要的是他经过身份验证,以便我们能够识别他,并且我们的应用程序只加载与他相关或属于他的服务/信息。感谢您的帮助。我要试试这个。
    <?php
     $ch = curl_init('http://mysite.com/index.php');
     curl_setopt ($ch, CURLOPT_POST, 1);
     curl_setopt ($ch, CURLOPT_POSTFIELDS,"username=xyz&pwd=123");
     $result = curl_exec ($ch);
     curl_close ($ch);
    ?>
    
      curl_exec() returns TRUE on success or FALSE on failure. 
      However, if the CURLOPT_RETURNTRANSFER option is set, it will return the result on success, FALSE on failure.