esc_html () AND wp_kses ()를 통해 HTML 출력을 전달해야합니까?


11

나는 여러 가지의 용도에 대해 혼란스러워하고있어 esc_html()wp_kses(). esc_html()특수 문자를 HTML 엔터티로 변환 wp_kses()하고 원치 않는 태그 (예 :) 를 제거 한다는 것을 이해 <script>하지만 어떤 컨텍스트에서 함께 또는 별도로 사용해야하는지 잘 모르겠습니다.

신뢰할 수없는 HTML을 통해를 실행 esc_html()하면 브라우저가 JavaScript를 렌더링하지 않고 일반 텍스트로 표시하므로 해당 시점에서 안전합니까? 또한이를 실행하는 유일한 이유 wp_kses()는 원시 스크립트가 표시되지 않도록하기위한 것입니까?

기본적으로 esc_html()안전 wp_kses()하고 예쁘게 만듭니다. 그 맞습니까?

답변:


16

Mark Jaquith가 적어도 간과 한 일반적인 규칙 은 입력에 따라 위생 처리되고 출력에 따라 탈출합니다 (이 규칙에 대한 결과는 조기위생 처리하고 늦게 탈출합니다 ).

데이터베이스에 신뢰할 수없는 데이터를 저장할kses() 때는 살균 필터 (예 : 제품군)를 사용하고 신뢰할 수없는 데이터를 템플릿에 출력 할 때는 이스케이프 필터 (예 : 패밀리) 를 사용하십시오 .esc_*()


14

html의 일부 하위 집합이 결과에있게하려면 kses 함수를 사용해야합니다. 예를 들어, 주석은 굵게, 기울임 꼴, 링크 등의 HTML을 허용합니다.

esc_html 함수를 사용하여 html을 완전히 이스케이프해야합니다. 어떤 HTML도 브라우저에서 HTML이 아닌 것으로 해석되는 것으로 변환되지 않고 통과하지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.