Menu

ClassSecurity

Anonymous

Security Class

  • Security Class
  • Constructor
  • Properties
  • Methods
    • encodeHTML

This class helps to solve or workaround security issues for incoming and output data.

Constructor

$security = new Security(mixed $context_var = null)

Parameters

  • $context_var : 대상 컨텍스트 변수. 배열이나 객체을 인수로 전달하며 전달하지 않으면 Context 클래스에 저장된 변수를 대상으로 한다.

Properties

모든 프로퍼티는 private 또는 protected 라고 가정하므로 직접 접근할 수 없다.

Methods

encodeHTML

mixed encodeHTML(string $var_name, ...)

대상 컨텍스트에서 주어진 속성 이름($var_name ...)에 해당하는 문자열을 찾아 HTML 특수 문자를 엔티티 형태로 변환한다.

Parameters

  • $var_name : 변환할 속성 이름

이 메소드에 대해 간단히 설명해보겠다. 먼저 대상 컨텍스트가 다음과 같이 주어졌다고 가정해보자.

$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 항목 아래의 모든 항목

Related

Wiki: ReferenceTOC