0

この特定のシナリオのための安全なソリューションを探しています:

  1. index.php ファイルがあります (www.my-app.com/index.php としましょう)
  2. HTTP で認証の詳細を www.domain.com/login に投稿する必要があります
  3. ログインが確認されたら、index.php 内の iframe に応答をロードする必要があります。

調査中に、次の解決策を見つけました。

解決策 #1: javascript(jquery) / シンプルな html フォームを使用して、ユーザー名とパスワードを www.domain.com に送信し、その特定の iframe の ID としてターゲットを指定します。したがって、アプリケーションはその iframe に読み込まれます。

私の見解: ユーザー名とパスワードが盗まれる可能性があり、セッションがハイジャックされる可能性があるため、これは安全ではない可能性があります。方法はわかりませんが、可能のようです。(非表示の変数もソースで見ることができます)

解決策 2:

php curl を使用してユーザー名とパスワードを送信し、iframe に URL を読み込みます。

(これを実装する方法はあまり明確ではありません。)

制限事項 : PHP の専門家ではありません (当然だと思います)。コードスニペットが役立ちます。

同じ手法を安全な方法で実装する別の方法はありますか?

私は、Facebook がページ タブ アプリケーションで同じことをしているのを見てきました。ほとんどの支払いフレームワークが同じことをしていると確信しています。しかし、彼らはどのようにそれをやっているのですか?

4

2 に答える 2

0

私はCURLについてあまり知識がありません.2番目の解決策(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

于 2012-07-26T11:45:09.897 に答える
0

HTTP で認証の詳細を www.domain.com/login に投稿する必要があります

あなたのセキュリティ上の懸念から、これらの認証の詳細はアプリの現在のユーザーのものではなく、あなたに属する固定アカウントを使用して domain.com のサービスにアクセスするために必要な一般的な認証の詳細であることがわかります。

もしそうなら、それは設計上壊れていると思います。ログイン資格情報を使用して他のサービスにクライアントをログインさせることは、どのような保存方法でも行うことはできません。

domain.com のそのサービスが独自のものである場合、そのクライアントにログイン資格情報を提供することなく、クライアントを認証するために別のことを考える必要があります。

使用しているサードパーティのサービスの場合は、より良い解決策を提供するよう依頼してください。

ところで、これは正確に Facebook とどのような関係があるのでしょうか?

于 2012-07-26T11:54:42.977 に答える