使用PHP Curl重定向到我的学校门户
我正在尝试使用
PHP Curl连接到我学校的门户网站,但没有运气,因为它似乎重定向到某些页面.我正在制作一个webapp,用于显示jQuery mobile中的学校日程安排,但为了显示您自己的日程安排,您需要登录并从那里查看您的日程安排.这是我打算用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,你可以看到,如果你去那里,它会将我重定向到另一个页面. 解决方法
你想要做的几乎是不可能的……他们应用了几种方法和安全令牌的重定向…让我解释一下:
乍一看,我以为我被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: Can CURL follow meta redirects 2)由于某些原因,当我使用篡改数据重定向时,我无法“打开”数据,因此您必须对此步骤进行一些研究… 3)这是另一种“重定向”技术,使用JavaScript! <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并且他们有一个很棒的API可以返回一些JSON数据! 如果您坚持或者无法获得API,那么请准备好进行一些艰苦的工作! Veel成功(祝你好运)! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |