4

PHP Curlを使用して学校のポータルに接続しようとしていますが、特定のページにリダイレクトされているように見えるため、うまくいきません。jQuery mobileで学校のスケジュールを表示するためのWebアプリを作成していますが、自分のスケジュールを表示するには、ログインしてそこからスケジュールに移動する必要があります。これは、PHPでCURLを使用して達成しようとしていることです。

http://codeaid.net/php/get-the-last-effective-url-from-a-series-of-redirects-for-the-given-urlのチュートリアルを使用しました。これは、指定されたリンクで機能します。しかし、学校のポータルにリダイレクトするためにどのリンクを使用すべきかがわかりません。

誰かがあなたがどのURLを使わなければならないかを知るために従うべきステップのアイデアを持っているなら、それは非常に役に立ちます。

私が使用したコード:

<?php function getLastEffectiveUrl($url)
    {
         // initialize cURL
         $curl = curl_init($url);
         curl_setopt_array($curl, array(
         CURLOPT_RETURNTRANSFER => true,
         CURLOPT_FOLLOWLOCATION => true,
    ));

    // execute the request
    $result = curl_exec($curl);

    // fail if the request was not successful
    if ($result === false) {
        curl_close($curl);
        return null;
}

          // extract the target url
          $redirectUrl = curl_getinfo($curl, CURLINFO_EFFECTIVE_URL);
          curl_close($curl);

          return $redirectUrl;
    }

    $lastEffectiveUrl = getLastEffectiveUrl('https://login.hhs.nl');
    echo $lastEffectiveUrl . "-";
?>

繰り返しになりますが、これは私がCodeaidからフォローしたチュートリアルであり、これを自分で作成したことについては信用していません。

私の学校のページへのリンクはhttps:// portal.hhs.nlで、そこに行くと別のページにリダイレクトされます。

4

1 に答える 1

1

あなたがしたいことはほぼ不可能です...彼らはいくつかのメソッドとセキュリティトークンでいくつかのリダイレクトを適用しました...私に説明させてください:

一見、header()によってリダイレクトされたと思いましたが、Tamper Dataを使用すると、画像がより明確になりました。

1)https://portal.hhs.nlを開くと、いくつかのメタタグによってリダイレクトされます

<META name="verify-v1" content="Yh6PvgPdX64Vdo9akXqTvstTouu9uQcvrPpFaL9jqZs=" />
<META name="verify-v1" content="eiUD3J3OcF6SjBKGe5ZvkMTzVEJ9rnpr1NaCKV9OIKw=" />
<meta name="google-site-verification" content="Ka0UPoAllNqYvbuviJCk8iV64YfqfWbX6G1APHdY5tg" />
<META content="text/html; charset=windows-1252" http-equiv=Content-Type>
<META content="0; URL=http://portal.hhs.nl/portal/pls/portal/PORTAL.home" http-equiv=Refresh>

したがって、これらのメタタグを解析してリダイレクトする必要があります...これを行う方法は次のとおりです。PHP:CURLはメタリダイレクトに従うことができますか

2)何らかの理由で、改ざんデータでリダイレクトされたときにデータを「開く」ことができないため、この手順について調査する必要があります...

3)そして、JavaScriptを使ったもう1つの「リダイレクト」テクニックがあります!!!

<FORM NAME="SingleSignOn" METHOD="POST" ACTION="https://aselect.hhs.nl/aselectserver/server" >
<INPUT TYPE="HIDDEN" NAME="request" VALUE="direct_login1" >
<INPUT TYPE="HIDDEN" NAME="rid" VALUE="C741680139CA153E" >
<INPUT TYPE="HIDDEN" NAME="a-select-server" VALUE="aselectserver1" >
</FORM>
</BODY>

それらを解析し、それらのPOST値を使用してhttps://aselect.hhs.nl/aselectserver/serverにリダイレクトするだけです...

4)最後に、https://aselect.hhs.nl/aselectserver/serverにアクセスします。ここで、実際にクレデンシャルを入力します。また、データを解析して、クレデンシャルとともに送信する必要があります。このステップの後、ポータルの背後にあるものを知っているのはあなただけです...

結論:これらのセキュリティ対策は、私たちのような自動化された子供たちを止めたいと考えていることを明確にしています。私が提案するのは、学校にAPIを要求することです。オランダで、Untisを使用している学校がいくつかあり、 JSONデータを返す優れたAPIがあります。

主張する場合、またはAPIを手に入れることができない場合は、ハードワークの準備をしてください。

Veelの成功(幸運)!

于 2012-11-10T14:30:42.933 に答える