Comment ce gars a-t-il piraté la limite de 140 caractères de Twitter?


36

Aujourd'hui, j'ai été surpris de voir qu'un gars a piraté la limite de 140 caractères de Twitter. Le message comprend 930 caractères. Comment cela pourrait être possible?

Le lien direct vers ce tweet est ici . Pour plus de commodité, je copie la capture d'écran du tweet complet ci-dessous:

entrez la description de l'image ici


1
Cela semble être un truc sympa, mais ce n’est pas une solution pour la limite de 140 caractères. En fait c'est mieux. Parce que les gens vont dire clairement ce qu'ils doivent dire, au lieu d'écrire toutes les ordures. :)

1
Alors, les gars, ça pourrait être une information utile, au centre du message, il y a une phrase en russe: 140 не предел! Lequel en anglais est: Gardez le tweet sans limites, les gens !!!!! 140 n'est pas une limite! Je suppose que certains "hakers" russes? :-)
Ouvrier

Il semble que Twitter a corrigé ce bug. Découvrez le lien direct vers le tweet.
Mehper C. Palavuzlar

La réponse courte: le tweet a moins de 140 caractères; c'est simplement un problème d'encodage qui oblige votre navigateur à l' afficher sous la forme de davantage de caractères.
ShreevatsaR

Un commentaire ci-dessous indique que le problème a été résolu par Twitter. Aujourd'hui, je suis tombé sur un autre tweet qui est assez similaire - twitter.com/#!/luchetti/status/177524100930084864
Chethan S.

Réponses:


41

Le message contient des points de code de substitution Unicode mal codés au format UTF-8. Ce type de codage incorrect s'appelle également CESU-8 . Il semble que certaines interfaces Twitter acceptent les points de code de substitution codés par CESU-8 en tant que caractères (aux fins de la limite de 140 caractères), mais pour l'affichage, ils attendent des valeurs UTF-8 valides, qui ne sont pas des séquences UTF-8 valides. Il affiche donc les 3 octets de chacune de ces séquences sous forme de 3 séquences d'échappement octales de style C de 4 caractères chacune, et chaque point de code de substitution finit par être affiché avec 12 caractères.

Par exemple, \ 355 \ 240 \ 265 \ 355 \ 263 \ 220 décodé en tant que UTF-8 échappé de C, sans rejeter les substituts comme cela serait normalement le cas lors du décodage de UTF-8, décodé en paire de substitution U + D835 U + DCD0. Le traitement de cette paire de substitution comme UTF-16, comme lors du décodage de CESU-8, produit le caractère Unicode U + 1D4D0 MAJUSCULE SCHEMA GRASSE A (𝓐).

Si l'échappement octal de style C est décodé et que le résultat est interprété comme CESU-8, il en résulte:

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

La voici sous forme d'image, pour ceux qui ne disposent pas d'un jeu complet de polices Unicode:

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


1
actuellement 101 caractères - bon travail @ mark4o
Jörg

3
Il semble que Twitter a corrigé ce bug. Maintenant, le message apparaît juste comme l'image que vous avez posté dans votre réponse.
Mehper C. Palavuzlar

Je vois encore les cases carrées, @ MehperC.Palavuzlar. Est-il possible que je n'ai AUCUNE police installée avec un jeu complet de caractères Unicode?
Gaia

3

Chaque groupe de caractères commençant par une barre oblique inversée et suivie de trois chiffres constitue une " séquence d'échappement ". Chacun d'eux représente un seul personnage. Celles-ci sont généralement utilisées pour les caractères qui n'existent pas sur votre clavier, tels que les caractères et symboles autres que l'anglais.

Mon hypothèse est que, lors du comptage des caractères, Twitter comptabilise chacun de ces groupes comme un seul caractère mais lors de leur affichage sur le navigateur, il les imprime en tant que quatre.

Mise à jour:

Certaines des séquences d'échappement disponibles sont des "caractères de contrôle". Celles-ci indiquent à l'ordinateur de faire quelque chose, par exemple émettre un son d'alerte, déplacer le curseur à gauche ou à droite ou vers le haut ou le bas, ou supprimer le caractère situé à gauche du curseur. Bien qu'aucun d'entre eux ne soit le dernier que j'ai mentionné (en supprimant le caractère précédent), il aurait peut-être également utilisé ce caractère pour confondre Twitter.

Fait intéressant, une fois reconverti en caractères normaux, il est assez répétitif et ressemble à ceci:

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

Mise à jour 2:

L'explication qu'il a donnée était "Пишите в DM, всегда на связи)", ce que Google Translate m'a dit est "Écrivez au DM, toujours en connexion)". Je ne sais pas exactement ce que cela signifie ni comment cela aide.


1
J'y ai aussi pensé (c'est l'explication la plus raisonnable qui me vienne à l'esprit), mais le problème est qu'il y a beaucoup plus de 140 groupes de quatre (140 * 4 = 560, ce qui est inférieur au décompte de 930 que Mepher a déclaré ).
Alex

@ Alex: C'est vrai. J'ai essayé de copier et de coller le message dans son intégralité dans une nouvelle zone de tweet, mais Twitter indique plus de 140 caractères. J'ai aussi essayé dans TweetDeck mais encore une fois, non.
Mehper C. Palavuzlar

Bien repéré. J'ai mis à jour ma réponse mais je ne vois aucune preuve que la mise à jour est ce qui s'est réellement passé.
Ladadadada

2
@Mehper, vous ne pouvez pas simplement le copier dans une zone de tweet, car alors Twitter l'interpréterait comme un caractère séparé ("\", "3", "5", "5"), etc. Vous devrez créer un script qui envoie les "symboles" sous forme d'octets, pas de caractères d'échappement.
Tor Valamo

"Пишите в DM, всегда на связи)" signifie qu'il vous invite à lui envoyer un message privé, il y répondra rapidement. Ma traduction serait: "Envoyez un DM, je suis toujours là".
Malcolm
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.