포럼
getTitle() 이 주로 사용되는 곳은 어디일까요?
2012.02.19 19:04
스킨 작업을 하다가 XE에서 보안차원으로 인코딩 시킨 도큐먼트의 타이틀 때문에
지장을 받고있는 부분이 스킨단에서의 Display 부분 임을 알고 문득 궁금한 점이 생겼습니다.
XE의 document.item.php에 보면 getTitle 함수가 정의되어있는데,
에디터에서 제목에 간단한 변화를 줄수있도록 하려다보니 이를 제어하기위해 만들어진 함수 같군요.
도큐먼트를 다루는 대부분의 모듈은 이 getTitle이라는 커스톰 함수를 사용하고 있네요.
이 함수를 보면 htmlspecialchars라는 PHP encoding 메쏘드를 사용하고 있습니다.
그러나 이 메쏘드가 이 getTitle이라는 특정 함수 내에서 사용이 되고있는 이유를 잘 모르겠더군요.
이 getTitle이라는 함수가 이름 그대로 Title을 가져오는 역할만 담당하고있는 것인지
아니면 또다른 역할이 있는지 잘은 모르겠습니다만
스킨단에서 사용되어지는 display 기능용 함수라면 궂이 htmlspecialchars 같은 인코딩을
사용하지 않아도 될듯 싶은데요. 차라리 strip_tags 같은 제어용 PHP 함수였다면 이해가 갑니다만...
이 함수가 다른 용도로도 사용된다면
함수의 용도에 따라 정확한 함수명과 함께 다른 함수가 따로 그용도를 위해 존재하는 것이
보안적인 면에서나 기능확대의 면에서나 제어하기에 더 낫지않을까 싶군요.
혹 제가 이 함수나 메쏘드들에 대해 잘못알고 있다면 이참에 다시 잘 좀 가르쳐주시기 바랍니다. : )
댓글 2
-
카르마
2012.02.20 14:36
-
Cody
2012.02.20 23:37
카르마님, 답변 고맙습니다.
strip_tags를 대신 쓰자는 얘기는 아닙니다. XE내의 함수를 정의할 때 프로세스의 성격에 따라 메쏘드를 구분해서 쓰면 좋겠다는 것이지요. getTitle 같은 성격이 분명한 함수 내에 인코딩 메쏘드를 쓰고있어서 어떤 다른 이유라도 있나 알고싶었습니다.
입력한 그대로 보여주기 위한 목적이 아닐까요?
strip_tags의 경우 태그를 완전히 없애버리기 때문에 원래의 입력된 내용과는 다르게 나타납니다.
예를 들어 누군가 태그에 대해서 질문을 했을때...
[<a href="test"">를 입력하셔야합니다.]
라는 제목을 썼다고 가정할때
strip_tags를 사용하면
앞부분은 없어져버리고 [를 입력하십시요]라고만 나올겁니다.