check_plain ()으로 충분합니까?


답변:


26

질문이 check_plain(filter_xss($string)), 또는을 사용하는 것에 관한 것이라고 생각합니다 filter_xss(check_plain($string)).

check_plain()그리고 filter_xss()두 가지가 있고, 반면에, 목적 :

  • check_plain() 특수 문자를 일반 텍스트 문자열로 인코딩 한 다음 HTML로 표시합니다.
  • filter_xss()크로스 사이트 스크립팅 (XSS) 취약점을 방지하기 위해 HTML 문자열을 필터링합니다. 특히 그 목적은 다음과 같습니다.

    • 브라우저를 속일 수있는 문자 및 구문 제거
    • 모든 HTML 엔티티가 올바른지 확인
    • 모든 HTML 태그 및 속성이 올바른지 확인
    • 허용되지 않는 프로토콜 (예 : javascript :)이 포함 된 URL에 HTML 태그가 포함되어 있지 않은지 확인

을 사용 check_plain()하면 함수에 전달 된 문자열은 일반 텍스트로 사용됩니다. 그러한 경우 filter_xss()에는 필요하지 않습니다. 을 사용 filter_xss()하는 경우 함수에 전달 된 문자열은 HTML이어야하며 check_plain()필요하지 않습니다.

질문이 동일한 문자열의 다른 부분을 사용 check_plain()하고 filter_xss()다른 부분에 대해 질문하는 경우 greggles가 주석에서 지적했듯이 check_plain()태그 속성의 내용과 filter_xss()전체 HTML 태그에 사용할 수 있습니다.


5
filter_xss는 전체 HTML 조각에 사용됩니다. html 속성에 filter_xss를 사용하면 제대로 필터링되지 않습니다. check_plain을 사용하여 HTML 속성을 안전하게 필터링 할 수 있습니다. 이러한 기능 사용에 대한 자세한 내용은 drupalscout.com/knowledge-base/…drupalscout.com/knowledge-base/… 도 참조하십시오 .
greggles
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.