매직메소드는 항상 클래스에 정의되어 있는 메소드로, __로 시작함
__construct() : 생성자, 객체 생성시 처음으로 호출, 부모 생성자를 호출하지 않고, parent::__construct()로 호출
__destruct() : 소멸자, 객체 파괴시 호출, 부모 생성자 호출X -> parent::__destruct()로 호출함
__get(), __set() : 일반적인 getter와 setter라고 생각하자
__isset(), __unset() : 클래스내의 프로퍼티를 isset(), unset()으로 호출했을때 실행됨
__call(), __callstatic() : 정의되지 않은 메소드 호출시 호출, 후자는 static 호출시 발동함
__toString() : 클래스의 내부를 문자열화 해서 return(JAVA의 그것과 같음)
__debuginfo() : var_dump(객체)와 같이 호출했을때 발동함.
그러니까 앞에 설명할 php object injection이 성립되려면 위와같은 매직메소드가 정의되어있어야 함.
'저세상 해킹 > 웹' 카테고리의 다른 글
PHP Object Injection (0) | 2019.09.16 |
---|