この男はTwitterの140文字の制限をどのようにハッキングしましたか?


36

今日、ある人がTwitterの140文字の制限をハッキングしているのを見て驚いた。メッセージは930文字で構成されています。どうしてこれが可能でしょうか?

このツイートへの直接リンクはこちらです。便宜上、以下の完全なツイートのスクリーンショットをコピーしています。

ここに画像の説明を入力してください


1
それはクールなトリックのようですが、140文字の制限に対する解決策ではありません。実際にそのほうがいい。人々はすべてのゴミを書くのではなく、彼らが伝える必要があることを明確に述べるからです。:)

1
だから、メッセージの中心にはロシア語のフレームがあります:Твиттиминеограничиваемсялюдиии!!!!!! 140непредел!英語で言うと、次のとおりです。140は制限ではありません!ロシアの「ハッカー」だと思う?:-)
労働者

Twitterはそのバグを修正したようです。ツイートへの直接リンクをご覧ください。
Mehper C. Palavuzlar

簡単な答え:ツイートの文字数は140文字未満です。それは単にブラウザがより多くの文字としてそれを表示する原因となっているエンコードの問題です。
ShreevatsaR

以下のコメントは、この問題がツイッターによって修正されたと述べています。-今日、私は非常に似ている別のつぶやきに出くわしたtwitter.com/#!/luchetti/status/177524100930084864
Chethan S.

回答:


41

メッセージには、UTF-8として不適切にエンコードされたUnicodeサロゲートコードポイントが含まれています。この種類の不適切なエンコードは、CESU-8とも呼ばれます。一部のTwitterインターフェイスは、CESU-8でエンコードされたサロゲートコードポイントを文字として受け入れます(140文字の制限のため)が、表示目的では有効なUTF-8を期待し、これらは有効なUTF-8シーケンスではありません。そのため、これらの各シーケンスの3バイトを、それぞれ4文字の3つのCスタイル8進エスケープシーケンスとして表示し、各サロゲートコードポイントは、12文字を使用して表示されます。

たとえば、\ 355 \ 240 \ 265 \ 355 \ 263 \ 220は、UTF-8をデコードするときに通常行われるようにサロゲートを拒否せずに、CエスケープUTF-8としてデコードすると、サロゲートペアU + D835 U + DCD0にデコードします。CESU-8のデコード時に行われるように、このサロゲートペアをUTF-16として処理すると、Unicode文字U + 1D4D0 MATHEMATICAL BOLD SCRIPT CAPITAL A(𝓐)が生成されます。

Cスタイルの8進エスケープがデコードされ、結果がCESU-8として解釈される場合、次のようになります。

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

ここでは、Unicodeフォントの完全なセットがインストールされていない人のための、イメージとしてのものです。

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


1
実際に101文字-良い仕事@ mark4o
ヨルグ

3
Twitterはそのバグを修正したようです。これで、回答に投稿した画像と同じようにメッセージが表示されます。
Mehper C. Palavuzlar

@ MehperC.Palavuzlarという正方形のボックスがまだ表示されています。Unicode文字の完全なセットがインストールされているフォントがインストールされていない可能性はありますか?
ガイア

3

バックスラッシュで始まり、3つの数字が続く文字の各グループは、「エスケープシーケンス」です。それぞれが単一の文字を表します。これらは通常、英語以外の文字や記号など、キーボード上に存在しない文字に使用されます。

私の推測では、文字をカウントするとき、Twitterはこれらの各グループを1つの文字としてカウントしますが、ブラウザーに表示するときは4として印刷します。

更新:

使用可能なエスケープシーケンスの一部は「制御文字」です。これらは、警告音の再生、カーソルの左右または上下への移動、カーソルの左側の文字の削除などを行うようにコンピューターに指示します。それらはどれも私が最後に言及したものではありませんが(前のキャラクターを削除します)、彼はそのキャラクターを使ってTwitterを混乱させたかもしれません。

興味深いことに、通常のキャラクターに戻したとき、それは非常に反復的で、次のようになります。

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

アップデート2:

彼の説明は「ПишитевDM、всегданасвязи)」であり、Google Translateから「DMに書き込み、常に接続中」と表示されます。それが何を意味するのか、それがどのように役立つのか正確にはわかりません。


1
私もそれを考えました(私の頭に浮かぶ最も合理的な説明です)が、問題は4つのグループが140以上あるということです(140 * 4 = 560、これはMepherが述べた930カウントより少ない) )。
アレックス

@アレックス:そうです。メッセージ全体をコピーして新しいツイートボックスに貼り付けようとしましたが、Twitterは140文字以上だと言っています。TweetDeckでも試してみましたが、また行きません。
Mehper C. Palavuzlar

よく見つけた。私は回答を更新しましたが、更新が実際に起こったことであるという証拠を見ることができません。
ラダダダダ

2
@Mehperをツイートボックスにコピーすることはできません。なぜなら、Twitterはそれを別の文字(「\」、「3」、「5」、「5」)などとして解釈するからです。スクリプトを作成する必要があります。 「記号」をエスケープ文字ではなくバイトとして送信します。
TorのValamo

「ПишитевDM、всегданасвязи)」は、プライベートメッセージを送信するように招待することを意味し、すぐに返信します。私の翻訳は次のようになります:「DMを送信してください、私はいつもそこにいます」。
マルコム
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.