TwitterBotにはユーザ名エスケープが必要


起きたこと

・Twitterボットが突然凍結された

凍結理由

・個人情報を含む情報を発言した、とのこと

原因

・住所をユーザー名としているユーザーに、ユーザー名込みでリプライを飛ばした。

運用しているBotには、Twitterユーザー名を引用して挨拶を返す機能がある。
「~さん、おはよう」的なやつ。

今回は、そのユーザー名が「○○県○○市○○999-91」という名前だった。
これが、Twitter社のおそらく自動検知プログラムで、許可がない個人情報の暴露として誤検知された模様。

対応

・ひとまず自分が持っているアカウント全てで対象ユーザーをブロック。

根本対応、今後の教訓

・ユーザー名を引用するときは、エスケープ処理が必要。

・住所らしき文字列をはじく。
⇒郵便番号と、○○[都道府県]○○市くらいまでは弾く必要がありそう。

・メールアドレスっぽい名前と、電話番号も怪しい。
⇒「nnnn@nnnn.nnn」と「999-9999-9999」のパターン

感想

該当のTwitterBotは、学生の頃からずっと動いてるやつ。
(GAE+python2.7)
特に便利機能を持ってた業務アカウントでもなく、当時ハマってたゲームのキャラクターbotである。
キャラクターごとに何個かアカウントがあったのだが
悲しいことにそれぞれログインして、ブロック作業をする必要があった。

なお、このbotを制作してた当時はuserStreamが出てまなしくらいの時代で、
しょっちゅうpost制限とかかかるためにサブ垢複数持ってるのが当たり前、なんて時代だった。

該当のユーザー名(ていうか住所)でググってみると
特定の界隈ではなんか有名なヤバイやつが住んでる住所らしい。
必ずしも本人とはわからないけども。

愉快犯なのかこうなることを知らずにやってるのかはわからないけど
ほんと困る出来事だった。

まさか運用開始から9年近くたって、こんなユーザーが現れるとは。

とはいえ、TwitterBotを開発するときに、気を付けないといけないポイントがわかったのはありがたい教訓である。

しかしながらTwitterさん、ユーザー名に自ら住所を設定するやつは
そもそも入力チェックで弾くべきではないですかね…。


  1. 掲載にあたり伏せているが、実在する住所