使用 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

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.
本篇發表於 Programming。將永久鏈結加入書籤。

使用 PHP 取得 登入後的 COOKIE 值(CURL) 有 8 則回應

  1. kftseng 說道:

    為甚麼要用 MIT License? 有什麼好處或壞處嗎??

  2. Tsung 說道:

    沒什麼好處或壞處耶, 只是 MIT 很開放, 就這樣子而已~ 🙂

  3. mix 說道:

    能否解釋一下這篇的安全性重點是在那邊呢?
    有點不了解, 麻煩你了:)

  4. Tsung 說道:

    示範給一般人知道, 只判斷 cookie 是不夠的....
    還是會被灌票... XD

  5. mix 說道:

    OK, 了解了~感謝!

  6. Spirits 說道:

    只判斷cookie為什麼會不夠呢 ?
    因為要獲取cookie還是得先判斷帳號密碼不是嗎?

  7. Tsung 說道:

    就看你 cookie 的判斷法是如何囉?
    如果只是 $_COOKIE['user'] = 'admin';, 那就可能被偽造~ 🙂

  8. andrea 說道:

    Thanks for demonstrating the concept of security. Definitely not a bad thing to do. essay

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料