為了要示範安全的概念, 所以來寫些小範例. 絕對不是要幹壞事~~~ 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, 應該較容易理解~