????????????£????example.orge??????????PHPSESSID???????????????????????????????????????????????

????????????????????????????????

 ?????????????????????????????????????????????ι??????????2?????????????PHPSESSID???????????????????????????????????顣

????????????

?????к???????????????Session?????????????????????????????????????????????????????????????????????????á?????????????????????????????????ó???????????????????

??????????д???????????????

???????????HTTP/1.1?????????????????ЩHost???????

????GET / HTTP/1.1

????Host: example.org

???????????????PHPSESSID????????session????????????PHPSESSID????cookie????н??д???:

????GET / HTTP/1.1

????Host: example.org

????Cookie: PHPSESSID=12345

?????????????????????session??????????????url?н??д????

????GET /?PHPSESSID=12345

????HTTP/1.1Host: example.org

?????????session???????????????POST?????У????????????????????????????????????á?

???????????TCP/IP???????????????????ε???????????web???????????????TCP/IP?е????????????????????????? ????????????????????????????????????????????????????????????????????????Ч???????????????????????? session???????????????2?????????????????????

????PHP?????????????????session ID??????????????????2??????????????????????????????????????????????????????????session ID??????????????????????????????????

????????????????????п??????session ID??й??? ?????????????GET??????????session ID??????п??????????е???????????????е?????????????session ID????????棬???????????????????С?Cookies???????????????????????????????????????????н????cookies??!???Щ IE??汾????б??????????????????????????й?cookies???Щ?а????????а?????

???????????????????????????session ID???????2???????????????п??????????????Щ???????????????????????Щ?????????????????????????????ó????з?????

??????????????????HTTP?????г???Host????????????????????????Щ????????.????????????????????????

????GET / HTTP/1.1

????Host: example.org

????Cookie: PHPSESSID=12345

????User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1

????Accept: text/html;q=0.9?? */*;q=0.1

????Accept-Charset: ISO-8859-1?? utf-8;q=0.66?? *;q=0.66

????Accept-Language: en

???????????????????????????????????а???????????????????????User-Agent?? Accept?? Accept-Charset???Accept-Language???????Щ??????????????????????????????????ó????з????????????????????????????????????????????????Щ????????????????????????????????????????????????????????????????У???????Я????Щ????????????????????м?????????????????????????????????????????????????????????????????????????????????????????

????GET / HTTP/1.1

????Host: example.org

????Cookie: PHPSESSID=12345

????User-Agent: Mozilla/5.0 (compatible; IE 6.0 Microsoft Windows XP)

??????????????session id???????????Cookie????У??????????php session???????????????????????User-Agent???????????????е???????????????????????????????????????????????

??????????????£????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????Ч??????????

???????????????????м?????User-Agent????????????Listing 3?е????

????Listing 3:

????

????session_start();

????if (md5($_SERVER['HTTP_USER_AGENT']) != $_SESSION['HTTP_USER_AGENT'])

????{ /* ????????????? */ exit;

????}

????/* Rest of Code */ ?>

??????????????????????????????????session???????MD5??????user agent????????????session?У?????????listing4?е????

????Listing 4:

????

????session_start();

????$_SESSION['HTTP_USER_AGENT'] = md5($_SERVER['HTTP_USER_AGENT']);

?????>

?????????????????MD5?????????User-Agent??????????????????????????????$_SERVER['HTTP_USER_AGENT']???????????????????????????????????????????????????κ???????????????????????ε???????????????

?????????????User-Agent??????????????????????????????????????????????session:

???????????????session id

????????????????User-Agent?????α?????????