Zend_Acl (Àº)´Â, ƯÁ¤ÀÇ ¿¬±¸ ÃÖÁ¾ ´Ü°è ±â¼ú ( ¿¹¸¦ µé¾î µ¥ÀÌŸº£À̽º³ª ij½¬ ¼¹ö¸¦ »ç¿ëÇß´Ù ACL µ¥ÀÌÅÍÀÇ º¸Á¸ µî) ¿¡ ÀÇÁ¸ÇÏÁö ¾Ê°Ô ¸¸µé¾îÁ® ÀÖ½À´Ï´Ù. ¸ðµÎ PHP ¸¸À¸·Î ½ÇÀåµÇ°í ÀÖÀ¸¹Ç·Î,Zend_Acl ¿ë¹«ÀÇ °ü¸®ÅøÀ» µ¶ÀÚÀûÀ¸·Î ÀÛ¼ºÇØ °ü¸®ÀÇ ¼ö°í¸¦ »ý·«ÇÏ´Â °Íµµ °¡´ÉÇÏ°Ô µÇ¾î ÀÖ½À´Ï´Ù. ACL ÀÇ °ü¸®¸¦ ´ëÈÀûÀ¸·Î ½Ç½ÃÇÏ°í ½Í´Ù°í ÇÏ´Â Àå¸éµµ ¸¹ÀÌ ¹ß»ýÇϰÚÁö¿ä.±× ¶§¹®¿¡ Zend_Acl ±×·³, ¾îÇø®ÄÉÀ̼ÇÀÇ ¾×¼¼½º Á¦¾î¸¦ ¼³Á¤Çϰųª ±×¿¡ ´ëÇØ ¹®ÀÇÇϰųª ÇÏ´Â ¸Þ¼Òµå¸¦ ÁغñÇϰí ÀÖ½À´Ï´Ù.
µ¥ÀÌÅÍÀÇ »ç¿ë¹ý¿¡´Â ´Ù¾çÇÑ °ÍÀ» »ý°¢ÇÒ ¼ö ÀÖÀ¸¹Ç·Î, ACL µ¥ÀÌÅÍÀÇ º¸Á¸Àº, Àå¸é¿¡ µû¶ó °³¹ßÀÚÃø¿¡¼ »ý°¢ÇÏ°Ô µË´Ï´Ù. Zend_Acl
(Àº)´Â ½Ã¸®¾Æ¶óÀÌÁî °¡´ÉÇØ¼,ACL ¿ÀºêÁ§Æ®¸¦ PHP ÀÇ serialize()
ÇÔ¼ö·Î
½Ã¸®¾Æ¶óÀÌÁî ÇÒ ¼ö ÀÖ½À´Ï´Ù.½Ã¸®¾Æ¶óÀÌÁî ÇÑ °á°ú¸¦, ÆÄÀÏÀ̳ª µ¥ÀÌŸº£À̽º ȤÀº ij½¬µîÀÇ ÁÁ¾ÆÇÏ´Â Àå¼Ò¿¡ º¸Á¸ÇÒ ¼ö ÀÖ½À´Ï´Ù.
¾î´À ÀÚ¿ø¿¡ ´ëÇÑ Æ¯Á¤ÀÇ ·ÑÀÇ ¾×¼¼½º±ÇÇÑÀÌ, °íÁ¤Àº ¾Æ´Ï°í Á¶°Ç¿¡ µû¶ó º¯ÈÇϱ⵵ ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, ¾×¼¼½º¸¦ ÀÎÁ¤ÇÏ´Â °ÍÀº ¿ÀÀü 8 ½Ã°£À¸·ÎºÎÅÍ ¿ÀÈÄ 5 ½Ã°£ÀÇ »çÀÌ·Î ÇÑÁ¤ÇÑ´Ù°í ÇßÀ» °æ¿ìÀÔ´Ï´Ù. ´Ù¸¥ ¿¹·Î¼´Â, ºí·¢ ¸®½ºÆ®¿¡ ½Ç·Á Àִ ƯÁ¤ÀÇ IP ÁּҷκÎÅÍÀÇ ¾×¼¼½º¸¸À» °ÅºÎÇÑ´Ù°í Çß´ø ÀûÀÌ ÀÖ½À´Ï´Ù. Zend_Acl (Àº)´Â, ÇÊ¿äÇÏ°Ô ÀÀÇÑ ÀÓÀÇÀÇ Á¶°Ç¿¡ ÀǰÅÇÏ´Â ±ÔÄ¢À» ÆíÀÔÀ¸·Î ¼Æ÷Æ®Çϰí ÀÖ½À´Ï´Ù.
Zend_Acl (Àº)´Â, Á¶°ÇºÎÀÇ ±ÔÄ¢À» Zend_Acl_Assert_Interface
±×¸®°í
¼Æ÷Æ®Çϰí ÀÖ½À´Ï´Ù.±ÔÄ¢ÀÇ assertion¿ë ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÏ·Á¸é , À̰ÍÀ» ½ÇÀåÇÑ Å¬·¡½º¿¡¼ assert()
¸Þ¼Òµå¸¦
ÀÛ¼ºÇÕ´Ï´Ù.
<?php
require_once 'Zend/Acl/Assert/Interface.php';
class CleanIPAssertion implements Zend_Acl_Assert_Interface
{
public function assert(Zend_Acl $acl, Zend_Acl_Role_Interface $role = null,
Zend_Acl_Resource_Interface $resource = null, $privilege = null)
{
return $this->_isCleanIP($_SERVER['REMOTE_ADDR']);
}
protected function _isCleanIP($ip)
{
// ...
}
}
assertion Ŭ·¡½º¸¦ ÀÛ¼ºÇϸé, Á¶°ÇºÎÀÇ ±ÔÄ¢À» Á¤ÀǸ¦ ÇÒ´çÇÒ ¶§¿¡ ÀÌ assertion Ŭ·¡½ºÀÇ ÀνºÅϽº¸¦ ÁöÁ¤ÇÕ´Ï´Ù. assertion µ¹ÃâÇØ ÀÛ¼ºµÈ ±ÔÄ¢Àº, assertion ¸Þ¼Òµå°¡ true (À»)¸¦ µ¹·ÁÁÖ´Â °æ¿ì¿¡°Ô¸¸ Àû¿ëµË´Ï´Ù.
<?php
require_once 'Zend/Acl.php';
$acl = new Zend_Acl();
$acl->allow(null, null, null, new CleanIPAssertion());
À§ÀÇ Äڵ尡 ÀÛ¼ºÇÏ´Â Á¶°ÇºÎ ±ÔÄ¢Àº, ´©±¸·ÎºÎÅÍÀÇ ¾×¼¼½º¿©µµ ¸ðµç ±ÇÇÑÀ» Çã°¡ÇÕ´Ï´Ù¸¸, ¸®Äù½ºÆ®¿øÀÇ IP ÁÖ¼Ò°¡ " ºí·¢ ¸®½ºÆ®¿¡ ½Ç·Á ÀÖ´Ù" °æ¿ì¿¡°Ô¸¸ ¾×¼¼½º¸¦ °ÅºÎÇÑ´Ù°í ÇÏ´Â °ÍÀÔ´Ï´Ù. ¸®Äù½ºÆ®¿øÀÇ IP ÇÏÁö¸¸ " Ŭ¸°" (Àº)´Â ¾Æ´Ï¶ó°í º¸¿´À» °æ¿ì´Â, ¾×¼¼½º Çã°¡ ±ÔÄ¢ÀÌ Àû¿ëµÇÁö ¾Ê½À´Ï´Ù.ÀÌ ±ÔÄ¢Àº ¸ðµç ·Ñ ¹× ÀÚ¿øÀÇ ¸ðµç ±ÇÇÑ¿¡ ´ëÇØ¼ Àû¿ëµÇ¹Ç·Î," ±ú²ýÇÏÁö ¾Ê´Ù" IP (À¸)·ÎºÎÅÍÀÇ ¾×¼¼½º´Â °ÅºÎÇÏ°Ô µË´Ï´Ù. ±×·¯³ª, À̰ÍÀº Ư¼öÇÑ ÄÉÀ̽ºÀÔ´Ï´Ù.Åë»óÀº ( Áï Æ¯Á¤ÀÇ ·ÑÀ̳ª ÀÚ¿ø, ±ÇÇÑÀ» ±ÔÄ¢ÀÇ ´ë»óÀ¸·Î ÇÏ´Â °æ¿ì) , assertion¿¡ ½ÇÆÐÇÏ°í ±ÔÄ¢ÀÌ Àû¿ëµÇÁö ¾Ê¾Ò´ø °æ¿ì¿¡´Â, ´Ù¸¥ ±ÔÄ¢À» »ç¿ëÇØ ¾×¼¼½ºÀÇ °¡ºÎ¸¦ ÆÇ´Ü½ÃÄÑ¾ß ÇÕ´Ï´Ù.
assertion ¿ÀºêÁ§Æ®ÀÇ assert()
¸Þ¼Òµå´Â, ÀÎÁõ ¹®ÀÇ ( Áï isAllowed()
)
ÇÏÁö¸¸ Àû¿ëµÈ´Ù ACL , ·Ñ, ÀÚ¿ø ¹× ±ÇÇÑ¿¡°Ô °Ç³×Áý´Ï´Ù.À̰ÍÀ» ÀÌ¿ëÇϰí, ÇÊ¿äÇÑ Àå¼Ò¿¡¼ assertion Ŭ·¡½º°¡ Á¶°ÇÀ» ÆÇ´ÜÇÕ´Ï´Ù.