X

使用 PHP 取得 登入後的 COOKIE 值(CURL)

為了要示範安全的概念, 所以來寫些小範例. 絕對不是要幹壞事~~~ XDDD

先準備兩隻小程式, 做確認程式是否有抓到 COOKIE 值.

login.php (POST 到 login.php, login.php 會確認帳號/密碼, 然後寫 COOKIE值)


<?php
if ($_POST['username'] == 'admin' && $_POST['password'] == '1234') {
setcookie('u', 'admin');
header('Location: check_login.php');
} else {
echo 'failed';
}
?>

check_login.php (確認是否有 $_COOKIE['u'] 的值, 而且是否是 'admin', 來判斷是否已 Login)


<?php
if ($_COOKIE['u'] == 'admin') {
echo 'Login success.';
} else {
echo 'Login failed.';
}
?>

假設上述兩個檔案分別在 http://localhost/login.php / http://localhost/check_login.php, 所以就來寫下述程式, 送 POST 到 login.php, 再經由 check_login.php 做確認是否登入完成, 程式如下:

Function List

  • resource setUrlCookie($url, $postdata)
  • string getUrlContent($resource, $url)

使用方法

  • getUrlContent(setUrlCookie($login_url, $postdata), $login_check_url);

setUrlCookie() 是 POST 送到 Login.php, 然後將 COOKIE 寫入 cookie.txt(或者可以用  tempnam() 產生一個唯一名字的檔案來儲存). 再用 getUrlContent() 去通過 COOKIE 驗證, 以取得網頁的資料.

照理說應該將上述 function 寫成一個 Class, 能方便管理 curl_init() 的 resource, 不過, 先暫時寫成 function, 應該較容易理解~

相關網頁

Tsung: 對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.
Related Post