HTML 엔티티란?

click fraud protection

HyperText Markup Language 또는 HTML은 인터넷 웹 페이지의 기본 언어입니다. 여기에는 JavaScript 및 CSS와 같은 추가 기능 및 스타일을 추가하는 다른 여러 언어에 대한 지원이 포함됩니다. 이러한 모든 언어는 브라우저에 인쇄해야 하는 리터럴 문자열과 해석 및 실행해야 하는 코드를 분리하는 데 사용되는 몇 가지 의미 있는 문자가 있는 텍스트 기반입니다.

이 디자인에는 몇 가지 문제가 있지만 의미 있는 문자 중 하나를 브라우저에 인쇄하려고 할 때 이러한 문제가 분명해집니다. 사용할 수 있는 가장 좋은 예는 "보다 작음" 및 "보다 큼" 기호입니다. 각각 이러한 기호는 HTML에서 코드 세그먼트를 열고 닫는 데 사용됩니다. 이러한 문자를 화면에 안전하게 인쇄하는 올바른 방법은 HTML 엔터티를 사용하는 것입니다.

HTML 엔터티 및 보안

특별한 의미를 지닌 이러한 문자 덕분에 브라우저에 인쇄되기를 원할 경우 HTML 엔티티 버전으로 대체하는지 확인하기 위해 정말 주의해야 합니다. 불행히도 많은 웹 개발자는 사용자가 많은 웹사이트에 입력을 제출할 수 있다는 사실을 잊습니다. 이 사용자 입력에 의미 있는 문자가 포함되어 있고 삭제라는 프로세스에서 HTML 엔터티로 대체되지 않으면 웹 사이트에 XSS(교차 사이트 스크립팅) 취약점이 있는 것입니다.

팁: XSS 취약점을 찾기 위해 웹사이트에 특수 문자를 제출하지 마십시오. 그렇게 하는 것은 기술적으로 해킹이며 웹사이트 소유자의 허가가 없는 한 형사 범죄입니다.

HTML 엔터티가 작동하는 방식(때로는 작동하지 않는 경우도 있음)

HTML 엔터티는 브라우저가 이를 관련 특수 문자로 표시하고 특수 문자로 취급하지 않는다는 것을 알고 있기 때문에 작동합니다. 모든 HTML 엔터티는 앰퍼샌드 "&"로 시작하고 세미콜론 ";"으로 끝납니다. 일부 특수 문자에도 약식 이름이 있지만 대부분의 문자는 엔티티 번호로 식별됩니다. 예를 들어 "&", ""에는 엔티티 번호 "&", ""와 엔티티 이름 "&", ""가 각각 있습니다. 브라우저는 이러한 문자열이 관련 문자를 표시해야 함을 의미한다는 것을 알고 있습니다.

팁: 캐릭터 엔티티 이름의 전체 목록을 찾을 수 있습니다. 여기, 엔티티 이름 지원은 브라우저에 따라 다릅니다.

대부분의 경우 사용자는 HTML 엔터티가 나타내는 문자만 볼 수 있습니다. 그러나 "이중 인코딩"이라는 프로세스를 통해 인코딩된 문자(일반적으로 앰퍼샌드 "&")를 볼 수 있습니다. 이것은 앰퍼샌드 문자가 자체 인코딩된 버전으로 나타날 때 발생합니다. 이중 인코딩은 일반적으로 입력이 올바르게 인코딩될 때 발생하지만 제출될 때 다시 삭제됩니다. 그 결과 "&"의 시작 부분에 있는 앰퍼샌드가 두 번째로 인코딩되고 "&"로 표시되고 브라우저는 HTML 엔터티를 디코딩하고 부분을 무시하고 "&"로 인쇄되어야 하는 문자열로 올바르게 해석합니다. 실재.