验证后加载iframe

时间:2012-07-26 11:19:08

标签: php curl facebook-apps

我正在为这种特殊情况寻找安全的解决方案:

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

      

    解决方案#1:使用javascript(jquery)/ simple html表单提交   用户名和&密码到www.domain.com并提到目标为id   特别是iframe。因此,应用程序将加载到iframe中。

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

    解决方案#2:

      

    使用php curl提交用户名&密码并加载网址   iframe中。

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

    限制:不是php的专家(显然我认为)。代码片段会有所帮助。

    还有另一种方法以安全的方式实现相同的技术吗?

    我见过facebook对他们的页面选项卡应用程序做了同样的事情。我相信大多数支付框架都是这样做的。但他们是怎么做到的?

2 个答案:

答案 0 :(得分:0)

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

<?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);
?>

根据php手册:

  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.

因此,您可以在iframe

中显示其他网站的结果

答案 1 :(得分:0)

  

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

根据您的安全问题,我收集到这些身份验证详细信息不是您应用的当前用户的详细信息,而是使用属于您的固定帐户访问domain.com服务所需的一般身份验证详细信息?

如果是这样,我会说被设计破坏。您无法以任何保存方式使用您的登录凭据登录其他服务。

如果domain.com上的该服务是您自己的,您必须考虑使用其他方法来验证客户端,而无需将登录凭据提供给该客户端。

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

顺便问一下,这究竟与Facebook有什么关系?