2013-06-18 2 views
4

CakePHP에는 h이라는 전역 함수가 있습니다. htmlspecialchars의 편리한 방법입니다. CakePHP에는 Sanitize이라는 유틸리티가 있으며, html이라는 메소드가 있습니다. 다음은 설명의 일부입니다.CakePHP : h() vs. Sanitize :: html()

이 방법은 HTML 내에 표시하기 위해 사용자 제출 데이터를 준비합니다. 이 은 사용자가 레이아웃을 깨거나 HTML 페이지 내부에 이미지 또는 스크립트를 삽입하지 못하게하려는 경우에 특히 유용합니다.

언제 각각 사용해야합니까? 하나가 다른 것보다 낫습니까?

+0

문서 예제에 설명 된대로보기 레이어에서 h()를 사용하면됩니다. http://book.cakephp.org/2.0/en/views.html#extending-views – mark

답변

4

Sanitize::html()은 더 많은 용도가 있습니다.이 옵션을 사용하면 HTML (remove 옵션 사용)을 완전히 제거 할 수 있으며 인용 처리 방법을 지정할 수 있습니다.
h() : http://api.cakephp.org/2.3/source-function-h.html#160-199
Sanitize::html() : http://api.cakephp.org/2.3/source-class-Sanitize.html#83-122

편집 :
h()이 : 호출 htmlspecialchars()
Sanitize::html() :

소스 코드를 참조하십시오 차이점에 대한 토론을위한 htmlentities()

를 호출을 참조하십시오 htmlentities() vs. htmlspecialchars()

+0

사실,'Sanitize :: html() 'htmlentities'를 호출합니다. – Nick

+0

반드시 잠 들어 있어야합니다. :) 2 PHP 함수 사이의 차이점에 대해이 질문을 참조하십시오 : http://stackoverflow.com/questions/46483/htmlentities-vs-htmlspecialchars. 두 가지 모두 XSS를 방지하므로 둘 중 하나는 보안상의 이유로 잘됩니다. – Costa