programing

HTML의 문자열에 대한 보이지 않는 구분 기호

itsource 2021. 1. 17. 10:52
반응형

HTML의 문자열에 대한 보이지 않는 구분 기호


HTML 마크 업에서 특정 문자열을 식별하는 방법이 필요합니다. 문자열이 무엇인지 알고 있지만 문서에있는 다른 문자열의 하위 문자열 일 수 있습니다. 이를 찾기 위해 특수 구분 문자 (현재 사용 \032)를 출력합니다 . 페이지로드시 HTML을 살펴보고 문자열의 위치를 ​​기록하고 구분 기호를 제거합니다.

불행히도 대부분의 브라우저는 구분 문자를 모두 찾아서 제거 할 수있을 때까지 표시합니다. 가능하다면 그것을 피하고 싶습니다. HTML 콘텐츠에 보존되지만 (주석이 작동하지 않음) 사용자에게 표시되지 않는 문자 또는 문자열이 있습니까? 또한 문자열 옆에 나타날 가능성이 거의없는 것이어야하므로 같은  것도 작동하지 않습니다.

편집 : 죄송합니다. 문자열이 속성에 포함될 것이므로 어떤 종류의 태그도 작동하지 않습니다.


‌-너비가없는 비결 합자 ( http://htmlhelp.org/reference/html40/entities/special.html 참조 )

이것이 이미 텍스트에 나타나면 두 배로 늘리십시오 (예 : ‌‌mytext‌‌


댓글에 대한 응답으로 편집 : Firefox 3에서 작동합니다. 엔티티의 유니 코드 값을 검색해야합니다.

<html>
<body>
    <div id="test">
        This is a &zwnj;test
    </div>

    <script type="application/javascript">
        var myDiv = document.getElementById("test");
        var content = myDiv.innerHTML;
        var pos = content.indexOf("\u200C");
        alert(pos);
    </script>
</body>
</html>

<span>요소에 삽입 할 수 있습니다 . 이는 페이지 내 텍스트에만 작동합니다 (속성 등이 아님).

그렇지 않으면 탭 문자 ( \x09), 세로 탭 ( \x0b), 베어 캐리지 리턴 ( \x0d) 과 같이 프로그램에서 HTML의 일부로 아직 출력하지 않은 공백 문자를 삽입 할 수 있습니다. 텍스트 인코딩 — 또는 그냥 널 바이트 ( \x00).


브라우저에 표시되지 않는 삽입하고 싶은 가장 좋은 것은 <span id="delimiter" class="Delimiter"></span>. 이 내용은 문서에 표시 될 수 있지만 콘텐츠에는 표시되지 않습니다. 제거 할 필요가 없습니다.


왼쪽에서 오른쪽 (LTR) 표시를 사용할 수 있습니다 . 이것은 일종의 XSS 테스트 용입니까? 그렇다면 이것이 흥미로울 것입니다 : PHP에 대한 Taint 지원

참조 URL : https://stackoverflow.com/questions/2812253/invisible-delimiter-for-strings-in-html

반응형