[英]Using PHP Curl to redirect to my school portal
我正在尝试使用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:CURL可以遵循元重定向
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成功(祝你好运)!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.