0

タイトルで説明したことを行うのに問題があります。誰かが私を助けることができるかどうか疑問に思っていました。

そこで、もう一度詳しく説明します。

POST データを外部 URL に送信するフォームを含む Web ページがあります (mysite.com ではなく hissite.com、おわかりいただけたと思います) HTML フレームを使用して、自分の Web サイト (mysite など) 内にページを作成しました。 .com/hissite) 他の Web サイトの実際の URL を隠すため。問題は、フォーム入力を hissite.com に渡すことができず、Web サイト内のフレームを介して渡すことができないことです。

私は基本的に次のことを望んでいます: 1. ユーザーが私の Web サイトにログインします。2. ログイン フォームがログイン情報を他の Web サイトに渡します。3. ユーザーはログインしますが、他の Web サイトにリダイレクトされる代わりに、他の Web サイトを含む私の Web サイト内のフレームにリダイレクトされます。

うまく説明できませんが、誰かが私を理解し、プロジェクトを完成させるのを手伝ってくれることを願っています。

私の Web ページのフォームは、他の Web サイトのフォームと同じ構造 (フィールド、フィールド名など) を持っていることに言及する必要があります。そのため、フレームを介して入力を渡すのは非常に簡単だと思いました。うーん…そう簡単ではないことに気づきました。

フォームは次のとおりです。

<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

あなたのアプローチでは、サードパーティのWebサイトをプロキシする以外に、これは不可能です。

あなたは出来る:

通常はフレームを使用します

これには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 に答える