개발자 도구 · HTML 엔터티 이스케이퍼
HTML에서 이스케이프해야 하는 5개의 문자와 각 문자가 위험한 이유
· 작동 방식
HTML 인코딩 보안
HTML 이스케이프는 & < > " 및 '의 5개 문자로 구성됩니다. 이 게시물에서는 마크업에서 각 문자가 수행하는 역할, 목록이 컨텍스트에 종속적인 이유, 각 항목에 대한 엔터티가 선택되는 방법을 설명합니다.
태그를 일찍 닫은 주석 - 사용자의 텍스트를 마크업으로 바꾸는 < 및 >
태그를 일찍 닫은 주석 — 사용자의 텍스트를 마크업으로 바꾸는 < 및 >가 흩어진 것입니다. 구현에서는 항상 앰퍼샌드, 보다 작음, 보다 큼, 큰따옴표 및 아포스트로피를 매핑합니다. 아포스트로피는 십진수 참조 번호 39가 되고, 나머지 4개는 친숙한 명명 형식을 사용합니다.
HTML 이스케이프 문자를 확인하려면 사용자가 제출한 텍스트를 페이지에 렌더링하는 개발자에 대해 닫힌 주석을 구성하십시오. 5자 정책이 잘못된 결과를 생성하는 동안 초기에 태그를 보존하십시오. 사용자의 텍스트가 소비되는 위치를 식별합니다. 마크업에 대한 관찰은 HTML 텍스트에만 속합니다.
& 첫째, 항상 — 이스케이프 문자 자체를 이스케이프해야 하는 이유와 이를 건너뛰면 어떻게 됩니까?
& 첫째, 항상 — 이스케이프 문자 자체를 이스케이프해야 하는 이유와 이를 건너뛰면 어떻게 됩니까? 단일 코드 포인트 루프는 교체 순서 버그를 방지합니다. 이전 교체에 의해 도입된 앰퍼샌드는 다시 방문되지 않으므로 인코더는 동일한 패스 중에 자체 출력을 이스케이프하지 않습니다.
사용자가 제출한 텍스트를 페이지에 렌더링하는 개발자는 왜 기록 이스케이프 문자 자체가 5자 정책을 통과하기 전에 먼저 수행되어야 하는지 항상 먼저 테스트할 수 있습니다. 이스케이프된 내용과 그 이후의 내용을 비교하고 건너뛴 경우 발생하는 담당 파서를 찾습니다. 이 HTML 이스케이프 문자 결과는 실행 가능한 컨텍스트가 아니라 이를 설명합니다.
텍스트 콘텐츠의 < 및 > — 토크나이저가 태그 시작을 결정하는 방법 및 >가 대부분 대칭을 위해 이스케이프되는 이유
텍스트 콘텐츠의 < 및 > — 토크나이저가 태그 시작을 결정하는 방법 및 >가 대부분 대칭을 위해 이스케이프되는 이유. 미만은 HTML 텍스트에서 마크업을 시작합니다. 보다 큼은 위험이 파서 상태에 따라 달라지더라도 일관되게 인코딩되므로 조각이 텍스트와 인용된 속성 사이를 이동할 때 출력을 예측할 수 있습니다.
짧은 5자 정책 샘플에서 텍스트 콘텐츠를 분리합니다. 토크나이저가 리터럴 소스로 결정하는 방법을 보여주고, 대상까지 시작된 태그를 따르고, API 읽기 이름을 지정하고 이스케이프된 이유를 표시합니다. HTML 이스케이프 문자의 경우 대부분 대칭에 대한 파서 바인딩 증거가 남아 있습니다.
속성 값의 따옴표 — " 및 ' 및 사용하는 속성 구분 기호가 어느 속성이 중요한지 결정하는 이유
속성 값의 따옴표 — " 및 ' 및 사용하는 속성 구분 기호가 어느 것이 중요한지 결정하는 이유. 두 따옴표 문자는 속성을 둘러싸는 구분 기호에 관계없이 인코딩됩니다. 이는 인용된 HTML 속성에 대해서는 보수적이지만 속성 이름, 구성표 또는 다운스트림 언어의 유효성을 검사하지는 않습니다.
속성 값의 따옴표를 경계 실험으로 처리합니다. 사용자가 제출한 텍스트를 페이지에 렌더링하는 개발자는 하나의 5자 정책 작업을 수행하고 변경하기 전에 문자별로 사용하는 속성 구분 기호를 검사하여 그 이유를 결정해야 합니다. 중요에 대한 주장은 이 HTML 레이어에서 중지됩니다.
작업한 예: 생성된 엔터티와 렌더링된 결과 다섯 가지를 모두 포함하는 조각을 이스케이프합니다.
작업된 예: 생성된 엔터티와 렌더링된 결과 다섯 가지를 모두 포함하는 조각을 이스케이프합니다. 입력 & < > " 아포스트로피의 경우 모든 모드는 & < > " '를 반환합니다. 일반 공간은 공간으로 남고 5개의 대체 공간이 소스 순서대로 나타납니다.
고객 자료 대신 무해한 입력을 사용하여 작업 예제를 재현합니다. 5개를 모두 포함하는 조각을 기록하고, 생성된 엔터티를 관찰하고, 의도적인 5자 정책 전달을 모두 계산합니다. 해당 HTML 이스케이프 문자 트레일을 사용하면 사용자가 제출한 텍스트를 페이지에 렌더링하는 개발자가 추측하지 않고 렌더링된 결과와 5자 정책 증거를 평가할 수 있습니다.
명명된 형식과 숫자 형식 — " 대 " 및 ' 대 '(이전 파서에서는 안전함)
이름이 지정된 형식과 숫자 형식 — " 대 " 및 ' 대 '이며 이전 파서에서는 안전합니다. 디코더는 "와 숫자", 그리고 '와 '를 모두 허용합니다. 인코더는 의도적으로 '보다는 '를 내보냅니다. 이는 문서화된 이식성 선택과 일치합니다.
장소 이름 대 숫자 형식, quot 대 34 및 39 대 apos 및 나란히 5자 정책 검토 중. 그러면 사용자가 제출한 텍스트를 페이지에 렌더링하는 개발자는 변환 시 또는 다운스트림 변경 시 어느 것이 안전한지 결정할 수 있습니다. 일반적인 보안 주장에서 이전 파서에 대한 HTML 이스케이프 문자 결론을 유지하십시오.
여기서 다루지 않는 내용 — 다른 규칙이 필요한 <script>, 이벤트 핸들러 또는 URL 내부에서 이스케이프
여기서 다루지 않는 내용 — 다른 규칙이 필요한 <script>, 이벤트 핸들러 또는 URL 내부에서 이스케이프합니다. 이러한 5개 대체 항목은 HTML 텍스트와 인용 속성 이스케이프만 설명합니다. JavaScript, CSS, SQL 및 URL 구성 요소에는 독립적인 문법이 있으며 엔터티 출력은 일반적인 살균제가 아닙니다.
5자 정책을 실행하기 전에 이것이 수행하지 않는 작업을 정의하십시오. 스크립트 내부에서 이스케이프되는 커버를 컨트롤로 저장하고, 이벤트 핸들러 또는 URL 뒤에 있는 코드 포인트를 검사하고, 다른 규칙이 필요한 항목을 다음 인터프리터에 매핑합니다. 이렇게 하면 HTML 이스케이프 문자를 조사하는 페이지에 사용자가 제출한 텍스트를 렌더링하는 개발자가 5자 정책 증거를 감사할 수 있습니다.
요점: HTML 텍스트 및 인용 속성의 경우 5자(모든 파서 컨텍스트는 아님)
요점: HTML 텍스트 및 인용 속성의 경우 5자(모든 파서 컨텍스트는 아님) 도구를 사용하여 정확한 5자 변환을 검사한 다음 규칙을 이해하는 HTML 컨텍스트에만 결과를 배치하세요. "아무데나 붙여넣기"는 의도적으로 약속되지 않았습니다.
관찰 가능한 5자 정책 출력에 대한 요약 5자를 연결합니다. html 텍스트를 유지하고 1회 통과 결과 옆에 따옴표를 붙인 다음 모든 파서가 컨텍스트에 입력되지 않는 속성이 어디에 있는지 확인하세요. 사용자가 제출한 텍스트를 페이지에 렌더링하는 개발자는 이제 좁은 HTML 이스케이프 문자 찾기로 5자 정책 증거를 검토할 수 있습니다. 이 기사의 실질적인 결정은 구체적입니다. HTML 이스케이프는 & < > " 및 '의 5개 문자로 축소됩니다. 이 게시물에서는 마크업에서 각 항목이 수행하는 역할, 목록이 상황에 따라 달라지는 이유, 각 엔터티를 선택하는 방법에 대해 설명합니다. 독자의 작업은 똑같이 구체적입니다. HTML 엔터티 이스케이퍼에 링크하고 마크업 문자가 포함된 조각을 이스케이프하는 방법을 보여주며 독자에게 이스케이프되는 정확한 문자 집합에 대한 도구 페이지의 '지원되는 입력 및 출력' 섹션을 참조하도록 합니다.