使用IFrame传递用户名和密码

时间:2012-03-02 12:43:08

标签: php javascript jquery html

我有一个问题。

这可能吗?
我需要将其他网站的登录页面放入iframe。登录后,您将看到一个图表。

当我点击超链接时,我需要的是它会显示iframe中的页面,但会自动填充并自动记录在帐户中,这样他们将看到的不是登录页面,而是里面的图形。

有没有办法在iframe中传递用户名和密码并触发登录按钮或自动登录?

可以在PHP或jquery中执行此操作吗?

关心所有人,并提前感谢。

3 个答案:

答案 0 :(得分:2)

不要公开密码,而是创建一个唯一的密钥,您可以与它们一起发送,以便在将在iframe中显示的页面上对它们进行身份验证。这假设两个系统都知道用户和唯一密钥。

设置iframe时,您可以将其来源设置为包含一些网址参数:

<iframe src="http://example.org/api?key=<?php echo $unique_key; ?>">

这将解决您执行此操作的javascript方法会引发的跨域问题。

答案 1 :(得分:2)

Treffynnon回答中唯一需要注意的是,它要求您可以访问这两个系统,以创建一种两者可用于通信的“登录代码”Web服务。如果您只能访问第一个站点(您想要包含iframe的站点),我会做的是以下内容(请注意,这不像Treffynnon的答案那样安全):

  1. 加载没有iframe的页面
  2. 使用ajax,查询您的服务器(通过SSL!)获取您需要提交给其他服务器的用户名和密码。
  3. 动态创建iframe,填充的表单与其他服务器上的登录表单基本相同,使用相同的“方法”提交与其他表单相同的“操作”。然后动态提交它。这应该在客户端上设置适当的登录cookie,以便他们登录。确保在任何地方都使用SSL。
  4. 将iframe动态重定向到包含您要查看的图表的网页。
  5. 删除任何包含安全登录信息的javascript变量。
  6. 潜在问题:

    • 某些登录过程非常挑剔,使用此方法可能无法登录。
    • 您显着增加了网站上的攻击媒介数量。例如:步骤2,查询登录凭据,假定您的安全性足以阻止人们查询他们无权访问的数据。
    • 所有这些都假设最终用户可以访问登录凭据,例如,他们有两个站点使用的用户名和密码。如果您使用1个站点范围的登录名来为最终用户提供他们无法获得的内容,那么这将向您的所有用户公开您的登录详细信息,您不应该这样做。在这种情况下,您唯一的选择是在后端完全做一些事情。如果您可以访问两个站点的代码,请使用Treffynnon的建议,否则您必须在后端访问并下载图表并为您的用户重新显示。

答案 2 :(得分:1)

您可以尝试的第一个是在iframe中使用GET方法发送用户名和密码。与src=yourscript.php?user=me&pass=secret类似,因此您可以尝试在另一方验证用户。