1

つまり、サイトAとBの2つのサイトがあります。BをAの一部にする必要があります。これを行うには、モジュールをAに追加し、そのモジュール内に、Bへのリンクを含むiframeを追加します。 Bは引き続きスタンドアロンサイトとしてアクセスできますが、Aを介してアクセスすることもできます。現在、両方のサイトにアクセスするにはログインが必要です。サイトAからアクセスするときにサイトBのログインをバイパスする必要があります。バイパスすることができましたが、2つのサイトが同じサーバーでホストされている場合(セッション変数を使用)のみですが、今は次のことができる必要があります。ホストされているサーバーに関係なく、Bのログイン画面をバイパスします。だから、どうすればこれを行うことができますか?

最初はCookieと思っていましたが、Cookieはドメイン固有であるため、2つのサイトが別々のドメインでホストされている可能性があります。

GETを使用する方法はありますか?したがって、サイトAはURLに記述されたユーザー名を使用してURLを呼び出し、サイトBはURLを読み取り、解析してそれに応じてログインします。これをどのように実装できるか、どのようなURLを呼び出す必要があるか、サイトBにどのようなPHPコードが必要か、そして最後に、このようなものをどのように安全にするかがわかりません。

ご協力ありがとうございます。

4

1 に答える 1

1

ハッシュ付きのUUIDをサイトBに送信します。ハッシュは両方のサーバーのみが認識してデコードできるものである必要があるため、次のようなものが機能するはずです。

サイトA

<?php
$salt = 'ashfiu8435t43434t fgfjgfgfuguSGDSBDY77;';
$uuid = ''; // this should be set to the users ID
$hash = sha1($salt . $uuid);
?>
<a href="http://siteb.com?hash=<?php echo ($hash); ?>&uuid=<?php echo $uuid; ?>">Site B</a>

サイトB

<?php
$salt = 'ashfiu8435t43434t fgfjgfgfuguSGDSBDY77;';
$uuid = $_GET['uuid'];
$sent_hash = $_GET['hash'];
$local_hash = sha1($salt . $uuid);

if($sent_hash === $local_hash) {
   echo 'Logged in! Yay!';
} else {
   echo 'Authentication failed';
}

ハッシュを偽造または把握しにくくし、一定の時間が経過すると期限切れになるようにして、人々がハッシュを保存して再利用したり、渡したりできないようにする必要があります。これが機能することを示すために、意図的にシンプルにしています。

于 2011-09-19T16:24:56.737 に答える