0

2 つのドメインに 2 つのファイルがあります

     http://example1.com/remote_login.php

     http://example2.com/login.php

ユーザーがアクセスしている間、 remote_login.phpでhttp://example1.com/remote_login.phpいくつかの検証を行いたいです。その後、結果が成功した 場合、ユーザーはにリダイレクトする必要があります(また、セッションをチェックしています)usernamepasswordhttp://example2.com/login.phphttp://example2.com/index.phphttp://example2.com/index.php

何か案が

Sorry for my bad english

を使用して試しましたcurlが、ログインできませんが、セッションを設定できません。そのため、ユーザーはリダイレクトできませんindex.php

$cookie="cookie.txt"; 
$data = array();
$data['global_id'] = "raj";
$data['global_password'] = "raj";

foreach ($data as $key => $value){
    $post_items[] = $key . '=' . $value;
}

//create the final string to be posted using implode()
$post_string = implode ('&', $post_items);


$curl_connection = curl_init('http://example2.com/login.php');
curl_setopt($curl_connection, CURLOPT_CONNECTTIMEOUT, 30);

curl_setopt($curl_connection, CURLOPT_USERAGENT,"Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:14.0) Gecko/20100101 Firefox/14.0.1");

curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl_connection, CURLOPT_FAILONERROR, TRUE);
curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl_connection, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl_connection, CURLOPT_REFERER, 'http://example2.com/login.php');
curl_setopt($curl_connection, CURLOPT_POST, true);
curl_setopt($curl_connection, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl_connection, CURLOPT_HEADER, FALSE);
curl_setopt($curl_connection, CURLOPT_COOKIEJAR, $cookie);
curl_setopt($curl_connection, CURLOPT_COOKIEFILE, $cookie);
curl_setopt($curl_connection, CURLOPT_SSLVERSION, 3); // OpenSSL issue
curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, 0);  // Wildcard certificate
curl_setopt($curl_connection, CURLOPT_SSL_VERIFYHOST, 2);
$result = curl_exec($curl_connection);


if($result){
    header("Location: http://example2.com/index.php");

}
else{
    echo "Login failed";
}
4

2 に答える 2

0

コードをそのまま入れます

if($result) のコードを変更してください

if($result){

<form id="myform" action="http://example2.com/index.php" method="post">
<input type="hidden" name="username" value=$username>
<input type="hidden" name="password" value=$password>
</form>

<script type="text/javascript">    // java script
function submitform()               // this is function send from data useing post method 
{
document.forms["myform"].submit();
alert("Value is sumitted");
}
function submitform();  //  calling function on page load
</script>

}
于 2012-08-10T04:49:11.040 に答える
0

これはかなり大きな作業です。ユーザーがログインしていない理由は、セッションがユーザーのマシンではなく、サーバー (Cookie を受け入れる場合) に設定されるためです。だから、あなたが今やっていることはかなり無駄です。

そうは言っても、すべてのリモートログインが特定のユーザーに返される何らかの「検証ID」の生成をトリガーし、ユーザーがリンク(validateSession.php?)にリダイレクトされるようなシステムをセットアップできます。 ID を確認するために特定の ID を渡すと、すべてのセッションがそこに設定されます...

大変な作業ですが。

また、中間者攻撃を防ぐために SSL を使用していない限り、これは 100% 安全ではありません。仲介者攻撃とは、悪意のあるモンスターが、クライアントからサーバーへ、またはその逆に送信される内容を傍受することです。したがって、誰かがその ID を入手した場合、問題が発生します。さらに悪いことに、彼らがユーザーのユーザー名とパスを手に入れたら....ああ、少年...

于 2012-08-10T04:05:47.117 に答える