XpressEngine Wiki
Status: Abandoned
Brought to you by:
yyj9411
This class helps to solve or workaround security issues for incoming and output data.
$security = new Security(mixed $context_var = null)
Parameters
모든 프로퍼티는 private 또는 protected 라고 가정하므로 직접 접근할 수 없다.
mixed encodeHTML(string $var_name, ...)
대상 컨텍스트에서 주어진 속성 이름($var_name ...)에 해당하는 문자열을 찾아 HTML 특수 문자를 엔티티 형태로 변환한다.
Parameters
이 메소드에 대해 간단히 설명해보겠다. 먼저 대상 컨텍스트가 다음과 같이 주어졌다고 가정해보자.
$context = array(
'elem1' => '<strong>Strong</strong> Baby',
'elem2' => array('First <b>1</b>', 'Second <b>2</b>', 'Thirc <b>3</b>')
'elem3' => 3.14
);
$security = new Security($context);
여기서 $context['elem1'] 요소만 변환하고 싶으면 다음과 같이 실행한다.
$security->encodeHTML('elem1');
두 개 이상의 요소를 변환하고 싶으면 인수를 여러개 전달하면 된다(앞의 코드를 지우고 페이지를 다시 읽어들여야 의도대로 동작한다).
$security->encodeHTML('elem1', 'elem3');
단, $context['elem3']는 숫자 형식이므로 변환이 되지 않고 따라서 함수의 실행 결과는 바로 앞에서 실행한 결과와 같다. 만약 $context['elem2'][0] 요소만 변환하고 싶다면 다음과 같이 점 문법(dot syntax)를 사용한다.
$security->encodeHTML('elem2.0');
$context['elem2']의 모든 요소를 변환하고 싶다면 점 뒤에 아무것도 입력하지 않는다.
$security->encodeHTML('elem2.');
다음은 문법의 몇 가지 예제이다.
$security->encodeHTML('elem1', 'elem2.first'); // elem1 속성과 elem2 속성의 first 항목
$security->encodeHTML('elem2..array.'); // elem2 속성의 모든 하위 항목 아래의 array 항목 아래의 모든 항목