0

我在做我在标题中解释的事情时遇到了问题。我想知道是否有人可以帮助我。

所以我再详细解释一下:

我有一个网页,其中包含一个将 POST 数据发送到外部 URL 的表单(不是 mysite.com 而是 hissite.com,我希望你明白了)我使用 HTML 框架在我自己的网站内创建了一个页面(例如 mysite .com/hissite) 以隐藏其他网站的实际 URL。问题是我无法将表单输入传递给 hissite.com,而是通过我网站内的框架。

我基本上想要以下内容: 1. 用户登录我的网站。2. 我的登录表单将登录信息传递到其他网站。3. 用户已登录,但被重定向到另一个网站,他被重定向到我的网站内包含另一个网站的框架。

我不知道如何更好地解释它,但我希望有人能理解我并帮助我完成我的项目。

我不得不提一下,我网页上的表单与其他网站上的表单具有相同的结构(字段、字段名称等)。所以我相信通过框架传递输入会非常容易。嗯,...我意识到这并不容易。

这是表格:

<form action="/home/signin" method="post" name="loginForm" class="large-form" id="loginForm" >
  <fieldset>
    <label for="username">Username</label>
    <input type="text" name="username" tabindex="1" id="username" value="" />
</fieldset>
<fieldset>
  <label for="password">Password</label>
  <input type="password" name="password" tabindex="2" id="password" value="" />
  <input type="hidden" name="themeName" value=""/>
</fieldset>
<br/>
<div id="login-button">
  <input type="submit" value="Log In" tabindex="3" />
</div>

预先感谢您的帮助。

4

2 回答 2

0

如果不使用您的方法代理第三方网站,这是不可能的。

你可以:

正常使用框架

这将涉及将target表单上的属性设置为框架名称和action第三方 URL。

只要第三方站点未对其登录表单实施任何针对CSRF 攻击的保护,这将起作用。

这种方法不会为您提供用于登录的凭据(尽管您可以使用 JavaScript 嗅探它们)。

代理整个站点

这将涉及与上述相同的内容,只是您将 设置为action您网站上的 URL。然后,您必须使用服务器端代码向第三方站点发出 HTTP 请求(在您的服务器上维护每个用户的 cookie jar)。对于每个请求,您必须解析每个响应并更改 HTML、CSS、JavaScript 等中的任何 URL,以便它们继续工作(因为相对 URI 会失败)。


无论哪种方式 - 要求用户在您的第三方网站上输入他们的凭据是一个高度可疑的请求。像这样的凭证应该是保密的,而不是共享的。

于 2013-03-09T15:07:50.300 回答
-1

在这种情况下,您需要使用 ajax 调用,将您想要的信息发送到其他页面,然后您可以根据需要继续处理数据,只需将表单提交调用为 javaScript,如下所示:

$.ajax({
        url: siteUrl,
        type: "post",
        async:true,
        dataType: 'json',
        success: function(data){
your function
        },
        error: function(e){
your error function
        }
    });
于 2013-03-08T15:03:59.703 回答