이 사람은 어떻게 트위터의 140 자 제한을 해킹 했습니까?


36

오늘 저는 한 남자가 트위터의 140 자 제한을 해킹 한 것을보고 놀랐습니다. 메시지는 930 자로 구성됩니다. 이것이 어떻게 가능할까요?

이 트윗에 대한 직접 링크는 여기에 있습니다 . 편의를 위해 아래의 전체 트윗 스크린 샷을 복사하고 있습니다.

여기에 이미지 설명을 입력하십시오


1
멋진 트릭처럼 보이지만 140 자 제한에 대한 해결책은 아닙니다. 실제로 더 나은. 사람들은 모든 쓰레기를 쓰지 않고 말해야 할 것을 명확하게 진술 할 것이기 때문입니다. :)

1
그래서 여러분, 유용한 정보가 될 것입니다. 메시지의 중심에는 러시아어로 된 문구가 있습니다 : Твиттим и не ограничиваемся людиии !!!!!! 140 не предел! 영어로 된 것 : 사람들, 한계없이 계속 !!!!!! 140은 제한이 없습니다! 러시아의 "해커들"이라고 생각하십니까? :-)
Worker

트위터가 그 버그를 수정 한 것 같습니다. 트윗에 대한 직접 링크를 확인하십시오.
Mehper C. Palavuzlar

짧은 대답 : 트윗은 140 자 미만입니다. 브라우저가 더 많은 문자 로 표시 하게 하는 인코딩 문제 일뿐 입니다.
ShreevatsaR

아래의 의견은 트위터에 의해 문제가 해결되었습니다. 오늘 나는 매우 비슷한 또 다른 트윗을
보았습니다

답변:


41

메시지에 UTF-8로 잘못 인코딩 된 유니 코드 대리 코드 포인트가 포함되어 있습니다. 이러한 종류의 부적절한 인코딩을 CESU-8 이라고도 합니다. 일부 Twitter 인터페이스는 CESU-8 인코딩 된 대리 코드 포인트를 문자 (140 자 제한의 목적으로)로 허용하지만 표시 목적으로 유효한 UTF-8을 예상하며 유효한 UTF-8 시퀀스는 아닙니다. 따라서 대신 각 시퀀스의 3 바이트를 각각 4 자의 3 C 스타일 8 진 이스케이프 시퀀스로 표시하고 각 대리 코드 포인트는 12자를 사용하여 표시됩니다.

예를 들어 UTF-8을 디코딩 할 때 일반적으로 수행되는 대리자를 거부하지 않고 C 이스케이프 된 UTF-8로 디코딩 된 경우 \ 355 \ 240 \ 265 \ 355 \ 263 \ 220은 대리 쌍 U + D835 U + DCD0으로 디코딩합니다. CESU-8을 디코딩 할 때와 같이이 대리 쌍을 UTF-16으로 처리하면 유니 코드 문자 U + 1D4D0 MATHEMATICAL BOLD SCRIPT CAPITAL A (𝓐)가 생성됩니다.

C 스타일 8 진수 이스케이프가 디코딩 된 후 결과가 CESU-8로 해석되면 다음과 같이 나타납니다.

𝓐𝓛𝓜𝓐𝓣𝓨 𝓐𝓛𝓜𝓐𝓣𝓨 𝓐𝓛𝓜𝓐𝓣𝓨 Твиттим и не ограничиваемся людиии !!!!!! 140 не предел! =)))) 𝓐𝓛𝓜𝓐𝓣𝓨 𝓐𝓛𝓜𝓐𝓣𝓨 𝓐𝓛𝓜𝓐𝓣𝓨

다음은 전체 유니 코드 글꼴 세트가 설치되지 않은 이미지의 이미지입니다.

𝓐𝓛𝓜𝓐𝓣𝓨 𝓐𝓛𝓜𝓐𝓣𝓨 𝓐𝓛𝓜𝓐𝓣𝓨 Твиттим и не ограничиваемся людиии !!!!!!  140 не предел! =)))) 𝓐𝓛𝓜𝓐𝓣𝓨 𝓐𝓛𝓜𝓐𝓣𝓨 𝓐𝓛𝓜𝓐𝓣𝓨


1
실제로 101 자-좋은 직업 @ mark4o
Jörg

3
트위터가 그 버그를 수정 한 것 같습니다. 이제 메시지가 답변에 게시 한 이미지와 같이 나타납니다.
Mehper C. Palavuzlar

여전히 정사각형 상자 인 @ MehperC.Palavuzlar가 표시됩니다. 전체 유니 코드 문자 집합으로 어떤 글꼴도 설치하지 않았을 수 있습니까?
Gaia

3

백 슬래시로 시작하고 그 뒤에 3 개의 숫자가 오는 각 문자 그룹은 " 이스케이프 시퀀스 "입니다. 그들 각각은 단일 문자를 나타냅니다. 일반적으로 영어 이외의 문자 및 기호와 같이 키보드에없는 문자에 사용됩니다.

내 생각에 문자 수를 세울 때 Twitter는 이러한 각 그룹을 단일 문자로 계산하지만 브라우저에 표시하면 4로 인쇄됩니다.

최신 정보:

사용 가능한 이스케이프 시퀀스 중 일부는 "제어 문자"입니다. 컴퓨터에서 경고음을 재생하거나 커서를 왼쪽 또는 오른쪽 또는 위 또는 아래로 이동하거나 커서 왼쪽의 문자를 삭제하는 등의 작업을 수행하도록 지시합니다. 내가 마지막으로 언급 한 문자는 아니지만 (이전 문자 삭제), 그 문자를 사용하여 Twitter를 혼동했을 수도 있습니다.

흥미롭게도, 일반 캐릭터로 돌아 왔을 때, 그것은 매우 반복적이고 다음과 같이 보입니다 :

í µ í ³ í µ í ³ › í µ í ³ œ í µ í ³ í µ í ³ £ í µ í ³ ¨ í µ í ³ í µ í ³ › í µ í ³ œ í µ í ³ í µ í ³ £ í µ í ³ ¨ 

업데이트 2 :

Google 번역에서 "DM에 쓰기, 항상 연결되어 있음"이라고 알려주는 설명은 "Пишите в DM, всегда на связи)"입니다. 그게 무슨 뜻인지, 어떻게 도움이되는지 잘 모르겠습니다.


1
나는 그것을 생각했다 (그것은 내 생각에 가장 합리적인 설명이다), 그러나 문제는 140 개 이상의 4 개 그룹 (140 * 4 = 560)이 있다는 것입니다. 이는 Mepher가 말한 930 수보다 적습니다. ).
Alex

@Alex : 맞습니다. 전체 메시지를 복사하여 새 트윗 상자에 붙여 넣으려고했지만 트위터는 140 자 이상이라고 말합니다. 나는 TweetDeck에서도 시도했지만 다시는 가지 않았다.
Mehper C. Palavuzlar

잘 발견되었습니다. 내 답변을 업데이트했지만 업데이트가 실제로 일어난 일이라는 증거를 볼 수 없습니다.
Ladadadada

2
@Mehper 당신은 그것을 짹짹 상자에 복사 할 수 없었습니다. 왜냐하면 트위터는 그것을 별도의 문자 ( '\', '3', '5', '5') 등으로 해석하기 때문에 스크립트를 만들어야합니다. 이스케이프 문자가 아닌 바이트로 "기호"를 보냅니다.
토르 발라 모

"Пишите в DM, всегда на связи)"는 귀하가 그에게 비공개 메시지를 보내도록 초대한다는 것을 의미합니다. 그는 신속하게 응답 할 것입니다. 나의 번역은 "DM을 보내라, 나는 항상 거기에있다"일 것이다.
Malcolm
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.