>백엔드 개발 >Golang >html/template은 왜 \'<\'를 이스케이프하지만 \'>\'은 이스케이프하지 않습니까?

html/template은 왜 \'<\'를 이스케이프하지만 \'>\'은 이스케이프하지 않습니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-04 05:33:29841검색

Why does html/template escape "? " />"? " />

HTML/템플릿 이스케이프 이해

">를 떠나는 동안 html/템플릿에서 "<"를 "<"로 불필요하게 이스케이프하는 문제가 제기되었습니다. ;" 변경되지 않습니다. 이 동작을 이해하려면 먼저 HTML/템플릿 이스케이프의 목적을 살펴보겠습니다.

안전을 위한 HTML 이스케이프

HTML/템플릿은 잠재적인 자동 이스케이프를 제공합니다. 코드 삽입 취약점을 방지하기 위한 위험한 문자입니다. 이 이스케이프는 상황에 따라 달라지므로 HTML, CSS 또는 URI와 같은 다른 상황에 포함될 때 데이터가 올바르게 인코딩됩니다.

HTML용 html/template 출력 전용

그러나 html/template은 HTML 출력을 생성하기 위해 특별히 설계되었다는 점을 기억하는 것이 중요합니다. 그 주된 목적은 사용자 제공 데이터를 HTML 문서에 삽입하는 안전한 수단을 제공하는 것입니다.

HTML이 아닌 출력에는 텍스트/템플릿 사용

필요한 출력이 HTML이 아닌 경우 html/템플릿과 달리 텍스트/템플릿을 대신 사용해야 합니다. 이스케이프를 수행하지 않으므로 일반 텍스트 또는 사용자 정의 파일 형식을 생성할 수 있습니다.

결론

제공된 예에서 템플릿은 HTML이 아닌 형식을 생성하기 위한 것입니다. Readme 또는 라이센스와 같은 파일입니다. 따라서 "<"의 불필요한 인코딩을 피하기 위해 문자를 이스케이프하지 않는 텍스트/템플릿을 사용해야 합니다. 출력 형식에 따라 적절한 템플릿 패키지를 선택하면 올바른 동작을 보장하고 예기치 않은 이스케이프 문제를 방지할 수 있습니다.

위 내용은 html/template은 왜 \'<\'를 이스케이프하지만 \'>\'은 이스케이프하지 않습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.