¿©·¯ µµ¸ÞÀÎµé °£ ÄíÅ° °øÀ¯Çϱâ |
|
|
|
4³â Àü |
µµ¸ÞÀÎµé °£ ÄíÅ° °øÀ¯Çϱâ
(Sharing cookies across multiple domains hosted on different servers)
ÀÌ ±ÛÀº http://www.innovativephp.com/sharing-cookies-across-multiple-domains-hosted-on-different-servers/ ÀÇ ±ÛÀ» ¹ø¿ªÇÑ ±ÛÀÔ´Ï´Ù.
µµ¸ÞÀε鰣 ÄíÅ° °øÀ¯¿¡ ´ëÇÑ °£´ÜÇÑ ¼Ò°³
¿Ö ÇÊ¿äÇÑ°¡?
À¥»çÀÌÆ®³ª À¥¾îÇø®ÄÉÀ̼ÇÀ» °³¹ßÇÒ¶§ ÇÊ¿ä¿¡ µû¶ó ´ÜÀÏ µµ¸ÞÀÎÀ̳ª º°°³ÀÇ µµ¸ÞÀÎ ¶Ç´Â ¼ºêµµ¸ÞÀÎÀ» »ç¿ëÇÒ¼ö ÀÖ´Ù. ±×¸®°í ÀϹÝÀûÀ¸·Î º¸¾ÈÀ̳ª ¼º´É, ¼¹öºÎÇÏ µî¿¡ ´ëÇÑ ÀÌÀ¯·Î ¼ºê µµ¸ÞÀÎ Çü½ÄÀ¸·Î ±¸¼ºÇÑ´Ù
±¸±ÛÀº ÀÌ °³³äÀ» ÀÌÇØÇϴµ¥¿¡ ÁÁÀº ¿¹ÀÌ´Ù. ±¸±ÛÀº ¸ÞÀÏ, °Ë»ö, ±¸±Û+ µîÀÇ ¼ºñ½º¿¡ ´ëÇØ ¼ºêµµ¸ÞÀÎ Çü½ÄÀ¸·Î ¼ºñ½º¸¦ Á¦°øÇÑ´Ù. ±¸±ÛÀº ÀڽŵéÀÇ ¼ºñ½º¿¡ ´ÜÀÏ ·Î±×ÀÎ Á¤º¸¸¦ »ç¿ëÇϱ⠶§¹®¿¡ ¼ºñ½º °£¿¡ ·Î±×ÀÎ Á¤º¸¸¦ °øÀ¯ÇÒ¼ö ÀÖ´Â ¹æ¹ýÀÌ ÇÊ¿äÇÏ´Ù. º¸Åë ·Î±×ÀÎ µ¥ÀÌÅÍ´Â ºê¶ó¿ìÀú ¼¼¼Ç¿¡ ÀúÀåµÈ´Ù. À̶§ °¢ ¼ºêµµ¸ÞÀÎÀº º°°³ÀÇ ¼¼¼ÇÀ» À¯ÁöÇϱ⠶§¹®¿¡ ¼¼¼Ç ±â´ÉÀ» ÀÌ¿ëÇÏ´ÂÇÑ ·Î±×ÀÎ Á¤º¸¸¦ °øÀ¯Çϴ°ÍÀº ºÒ°¡´ÉÇÏ´Ù. ¹Ù·Î ÀÌÁ¡ÀÌ ÄíÅ°°¡ ÇÊ¿äÇÑ ÀÌÀ¯´Ù. ÄíÅ°°ªÀº ¿©·¯ »çÀÌÆ®¿¡¼ Á¢±ÙÇÒ¼ö ÀÖÀ¸¸ç °¢°¢ÀÇ ¾îÇø®ÄÉÀ̼ǿ¡ ÇÊ¿äÇÑ Á¤º¸¸¦ À¯ÁöÇÒ¼ö ÀÖ´Ù. PHP´Â µµ¸ÞÀε鰣 ÄíÅ°¸¦ °øÀ¯ÇÏ´Â ±â´ÉÀ» Áö¿øÇÑ´Ù
µµ¸ÞÀÎ °£ ÄíÅ° °øÀ¯ÀÇ Á¦ÇÑÁ¡
ºñ·Ï µµ¸ÞÀÎ °£¿¡ ÄíÅ°°ªÀ» ÀúÀåÇÏ°í Á¢±ÙÇϴ°ÍÀÌ °¡´ÉÇϱä ÇÏÁö¸¸ ¸î°¡Áö Á¦ÇÑ»çÇ×ÀÌ ÀÖ´Ù. ´Ù¸¥ µµ¸ÞÀÎÀÇ ÄíÅ°°ªÀº ÀúÀåÇÒ¼ö ¾ø´Ù´Â °ÍÀÌ´Ù. ´ÜÁö µ¿ÀÏÇÑ »çÀÌÆ®ÀÇ ¼ºêµµ¸ÞÀÎ ÄíÅ°¸¦ ÀÌ¿ëÇÒ¼ö ÀÖÀ» »ÓÀÌ´Ù.
µ¿ÀÏÇÑ ¼¹ö¿¡¼ ¼ºñ½ºµÇ´Â www.example1.com ¿Í www.example2.com À̶ó´Â »çÀÌÆ®°¡ ÀÖ´Ù°í °¡Á¤ÇÏÀÚ. ÀÌ µÎ°³´Â °°Àº ¼¹ö¿¡ ÀÖ±â´Â ÇÏÁö¸¸ µµ¸ÞÀÎ À̸§ÀÌ ´Ù¸£´Ù. µû¶ó¼ ÀÌ µÎ »çÀÌÆ®°£ ÄíÅ°¸¦ °øÀ¯ÇÒ ¼ö´Â ¾ø´Ù. ÇÏÁö¸¸ www.example.com °ú ÀÌ »çÀÌÆ®ÀÇ ¼ºêµµ¸ÞÀÎÀ» È°¿ëÇÑ »çÀÌÆ®, ¿¹¸¦µé¾î app.example.com, demo.example.com ¸¦ »ç¿ëÇÑ´Ù¸é ÀÌ ¼¼ µµ¸ÞÀΰ£ÀÇ ÄíÅ°´Â °øÀ¯µÉ¼ö ÀÖ´Ù. À̶§ ÀÌ ¼ºñ½º°¡ ¹Ýµå½Ã µ¿ÀÏÇÑ ¼¹ö¿¡ ÀÖÀ» ÇÊ¿ä´Â ¾øÀ¸¸ç, ¸ðµç µµ¸ÞÀÎÀÌ ÇϳªÀÇ top domain¿¡ ¼ÓÇÒ ÇÊ¿ä´Â ¾ø´Ù.
PHP·Î cookie ¼³Á¤Çϱâ/°¡Á®¿À±â
PHP ¸¦ »ç¿ëÇؼ ÄíÅ° ÀúÀåÇϱâ
php´Â À¥ºê¶ó¿ìÀú»ó¿¡¼ ÄíÅ°¸¦ ÀúÀåÇÏ°í »èÁ¦ÇÒ¼ö ÀÖ´Â ÇÔ¼ö setCookie ¸¦ ±âº»ÀûÀ¸·Î Á¦°øÇÑ´Ù
¿É¼Ç¿¡ µû¶ó ´Ù¾çÇÑ È¯°æ¿¡¼ÀÇ »ç¿ëÇϴ°͵µ °¡´ÉÇÏ´Ù
setcookie(cokie name, cookie value, cookie lifetime, cookie path, domain, connection type, http access);
•Cookie Name – ÄíÅ° À̸§. Çѹø ¼³Á¤Çϸé ÀÌÈķδ $_COOKIE['name'] ·Î Á¢±ÙÇÒ¼ö ÀÖ´Ù.
•Cookie Value – ÄíÅ°ÀÇ °ª.
•Cookie Lifetime – ¸¸·á³ª »èÁ¦±îÁö ³²Àº ½Ã°£. º¸Åë time()+3600 (ÇöÀç½Ã°¢+Çѽð£) °ú °°Àº Çü½ÄÀ¸·Î »ç¿ëÇÑ´Ù
•Cookie Path – À¥»çÀÌÆ®ÀÇ Æ¯Á¤ µð·ºÅ丮 ³»¿¡¼¸¸ À¯È¿Çϵµ·Ï ¼³Á¤ÇÏ´Â º¯¼ö. "/" ·Î ¼³Á¤Çϸé À¥»çÀÌÆ® Àüü¿¡¼ Á¢±ÙÇÒ¼ö ÀÖ´Ù
•Cookie Domain – ƯÁ¤ ¼ºêµµ¸ÞÀÎ ¶Ç´Â µµ¸ÞÀÎ Àüü¸¦ À¯È¿¹üÀ§·Î ÁöÁ¤ÇÏ´Â º¯¼ö.
•Connection Type – TRUE ¶Ç´Â FALSE °ªÀ» °¡Áø´Ù. TRUEÀÏ °æ¿ì HTTPSÀÎ °æ¿ì¿¡¸¸ Á¢±Ù °¡´ÉÇÏ´Ù.
•HTTP Access – TRUE ¶Ç´Â FALSE °ªÀ» °¡Áø´Ù. TRUEÀÏ °æ¿ì¿¡´Â HTTP·Î Á¢±ÙÇÒ ½Ã¿¡¸¸ Á¢±Ù °¡´ÉÇÏ´Ù
ÄíÅ° °ª °¡Á®¿À±â
$_COOKIE['cookie_name'];
ÄíÅ° »èÁ¦Çϱâ
ÄíÅ° »èÁ¦ ÇÔ¼ö´Â ÄíÅ° ÀúÀå ÇÔ¼ö¿Í ¶È°°´Ù. ´ÜÁö Lifetime ÆĶó¹ÌÅ͸¦ °ú°Å ½ÃÁ¡ÀÇ °ªÀ¸·Î ¼³Á¤ÇØÁÖ¸é µÈ´Ù.
»ý¼ºÀ» ¾Æ·¡¿Í °°ÀÌ Çß´Ù¸é
setcookie("Logged", "True", time()+3600, "/");
¾Æ·¡¿Í °°ÀÌ »èÁ¦ÇÒ ¼ö ÀÖ´Ù
setcookie("Logged", "True", time()-3600, "/");
ÄíÅ° ÇÔ¼öÀÇ ¿Ã¹Ù¸¥ »ç¿ë¿¹
À̸§°ú °ªÀ¸·Î »ý¼º
setcookie("Logged", "True", time()+3600);
¾îÇø®ÄÉÀÌ¼Ç Àüü¸¦ ¹üÀ§·Î »ý¼º
setcookie("Logged", "True", time()+3600, "/");
¾îÇø®ÄÉÀÌ¼Ç ³»ÀÇ Æ¯Á¤ Æú´õ¸¦ ¹üÀ§·Î »ý¼º
¾Æ·¡ ÇÔ¼ö´Â ¾îÇø®ÄÉÀÌ¼Ç ³»¿¡¼ /blog/tutorials/ Æú´õ ³»¿¡¼¸¸ ÀÛµ¿ÇÑ´Ù
setcookie("Logged", "True", time()+3600, "/blog/tutorials/");
µµ¸ÞÀÎ °£ °øÀ¯ ÄíÅ° »ý¼º
¾Æ·¡ ÇÔ¼ö´Â exmaple µµ¸ÞÀΰú ±× ÇÏÀ§ µµ¸ÞÀο¡ ´ëÇؼ¸¸ ÀÛµ¿ÇÑ´Ù
setcookie("Logged", "True", time()+3600, "/", ".example.com");
ƯÁ¤ ÇÏÀ§µµ¸ÞÀο¡ ´ëÇؼ¸¸ »ý¼º
¾Æ·¡ ÇÔ¼ö´Â app.example.com µµ¸ÞÀο¡ ´ëÇؼ¸¸ ÀÛµ¿ÇÑ´Ù
setcookie("Logged", "True", time()+3600, "/", ".app.example.com");
º¸¾ÈÀÌ À¯ÁöµÇ´Â ƯÁ¤ ÇÏÀ§ µµ¸ÞÀÎÀÇ ÄíÅ°·Î »ý¼º
¾Æ·¡ ÇÔ¼ö´Â example.com°ú ±× ÇÏÀ§ µµ¸ÞÀÎ ¿µ¿ª¿¡¼ https ¿¬°áÇÏ°í ÀÖÀ» °æ¿ì¿¡¸¸ ÀÛµ¿ÇÑ´Ù
setcookie("Logged", "True", time()+3600, "/", ".example.com", 1);
º¸¾ÈÀÌ À¯ÁöµÇ´Â ƯÁ¤ ÇÏÀ§ µµ¸ÞÀÎÀÇ ÄíÅ°·Î »ý¼º. HTTP ¿äûÀ¸·Î¸¸ Á¢±Ù °¡´É
¾Æ·¡ ÇÔ¼ö´Â example.com°ú ±× ÇÏÀ§ µµ¸ÞÀÎ ¿µ¿ª¿¡¼ https ¿¬°áÇÏ°í ÀÖÀ» °æ¿ì¿¡ ÀÛµ¿Çϸç HTTP(ÀÌ °æ¿ì¿¡´Â HTTPS) ¿¬°áÀ» ÅëÇؼ¸¸ Á¢±ÙÀÌ °¡´ÉÇÏ´Ù
setcookie("Logged", "True", time()+3600, "/", ".example.com", 1, 1);
|
|
̵̧ : 207 |
̵̧
¸ñ·Ï
|
|