通过iframe登录远程站点

den*_*nis 6 javascript iframe

好的,我需要做的是能够从iframe中的远程站点放置登录屏幕,当他们点击登录按钮时,它会将它们登录到远程站点,然后将本地页面更改为第2页,这就是我所拥有的设法做到这一点,这是非常少的.如果这是不可能的,我能够创建一个本地登录,将信息传递到远程站点并获取cookie,然后加载下一个本地页面?

<html>
<head>
    <title>
    </title>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" >
    <style type="text/css">
    #outerdiv
    {
        width:400px;
        height:360px;
        overflow:hidden;
        position:relative;
    }

    #inneriframe
    {
        position:absolute;
        top:-125px;
        left:-802px;
        width:2000px;
        height:2000px;
    }
    </style>
</head>
<body>
    <div id='outerdiv'>
        <iframe src="http://www.99designs.com/login" name="myiframe" id='inneriframe' scrolling=yes></iframe>
    </div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

Peb*_*bbl 6

很可能不可能......

这很可能是不可能的,因为本地和远程之间的主机将是不同的,因此JavaScript不允许您访问iframe内容,因为Same origin policy所有浏览器都使用.

http://en.wikipedia.org/wiki/Same_origin_policy

您可以实现此目的的唯一方法是,如果其他站点不使用XSS保护并允许您直接获取/发布其站点的登录URL.这实际上取决于谁控制了什么...如果您拥有并控制本地和远程站点,那么它将是可能的.如果没有,它不太可能并且会受到各种可能的问题的影响(例如,如果远程站点改变了它的登录方式,系统将会中断,或者对登录注销过程的细粒度控制不会可能,所以你将无法实现自己的错误处理).

我想我说的是你不应该依赖XSS漏洞.

为什么这种东西受到保护?

如果你考虑一下,如果上述情况不正确,那么当你在网站上冲浪时,邪恶的人会在背景中做很多非常强大和可怕的事情.例如,如果您可以使用JavaScript跨主机与隐藏的iframe进行通信,则无法阻止某人编写导航到Facebook的隐藏脚本,依赖浏览器存储的用户名和密码,登录,然后开始发布/删除/结束... ... (这只是一个温和的例子,不涉及信用卡详细信息或政府网站)

其他选择?

实现这些方面的最佳选择是采用服务器端脚本语言,如php,asp,java,node.js,ruby,lisp,perl或python.脚本语言在使用外部资源方面往往没有限制.同样,只要外部站点支持简单或开源登录系统,您就应该能够使用服务器端脚本作为代理通过AJAX登录,而不是允许JavaScript登录.例如,您可以通过PHP使用cURL发布到外部站点并检索站点返回的cookie.然而,这不是一个简单的项目,并且需要相当多的工作才能正常运行而不会出现问题.