星期二, 五月 13, 2008

使用 PHP 取得 登入後的 COOKIE 值

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

相關標籤

this is comment icon Why MIT? [回覆]

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

Comment by kftseng (05/14/2008 01:07)

this is comment icon 回 kftseng [回覆]

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

Comment by Tsung (05/14/2008 09:44)

this is comment icon [回覆]

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

Comment by mix (05/20/2008 09:45)

this is comment icon 回 mix [回覆]

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

Comment by Tsung (05/20/2008 10:04)

this is comment icon [回覆]

OK, 了解了~感謝!

Comment by mix (05/20/2008 10:29)
Add this page to del.icio.us Add this page to Yahoo Taiwan's bookmark Add this page to MyShare

發表迴響

標題

內容 (限制 1000 字)

暱稱

電子郵件

個人網頁


 authimage


PS: 若無法留言, 請先確認是否有打開 JavaScript, 造成您的困擾, 實在萬分對不起 Orz...(如果無法留言, 勞煩可以發信給我好嗎? 謝謝.) 註: 若您的留言被誤判, 我都會再自行看過, 不需要一直重覆張貼唷~)