--- layout: old_post title: Twitterフェラ語変換サービス「フェラッター」をつくったー permalink: /tatsuya/show/333-twitter ---

フェラ語変換スクリプトとTwitterのマッシュアップ!「フェラッター」を作ったー



フェラッター

入力したテキストをフェラ語へ変換してTwitterへポストします、例えば

今日の昼食は、ベトナムカレーを食った。850円也。
 ↓変換
今日ほ昼食は、んっ…おいひい…。フェホハフハヘーほ食っは。ジュル…。850円也。ジュル…。

のように変換されます。実用性は皆無にですが、暇つぶしや何かのプレイに使えるかも(使えないかも)。
暇つぶしで軽く作ろうと思ったので
1) JavaScriptでポップアップ(もしくはIFRAME)な新しいページを開く
2) 新ページにフォームを仕組みJavaScriptで自動Submit→Twitterへ
 → Twitter認証もブラウザの基本認証ですむので、セキュリティ的にクリーン
 → ログインの仕組みやサーバサイドを用意しないので簡単
という仕組みで、数時間くらいでさくっと作ろうと思ってたら・・・エラーが出る・・・TwitterのAPIはReferrerをチェックしてるんだね ;( CSRF対策か。

ローカルで動かすとちゃんと動いたので、完成してサーバに上げるまで気付かなかった。。Referrre "localhost" はOKとしてるの?
・更新系はPOSTしか受け付けない
・Referrerが外部サイトのリクエストは受け付けない
の2点をチェックすればほぼCSRFは防げるか・・・?GETが通ればJavaScriptRefferを消す方法もあるようなのでなんとかなりそうだけどPOSTとなると

 1) XMLHTTPRequest → クロスサイトなのでX
 2) JSONP → GETなのでX
 3) IFRAMEでTwitterAPIを開く → GETなのでX
 4) IFRAMEで開いたページにJavaScript仕込んでフォーム自動Submit → Reffereが外部サイトでX (これではまった)
 5) JavaScriptでRefferを消す(location.hrefやMETAタグRefresh) → GETなのでX(?)
 6) アカウントIDとパスワード入力してもらって、普通にサーバサイドでポスト ←(いまここ)
 7) FlashからPOSTでReffrerを偽造したリクエスト投げれる? →試してない(Twitterにcrossdomain.xml置いてる?)
8) JavaアプレットからPOST & Reffrer偽造リクエスト投げられるか? →試してない(クロスサイトは基本無理な筈、証明書を入れればいけるというのを読んだことあるが)

う〜む、結局サーバサイドなのか・・・4案でいけると思ったのに。。

ということで、微妙に時間をくった「フェラッター」をどうぞ。
ちなみに自分のTwitterアカウントは tkmr です、こちらもAddよろしくどうぞ。

追記:
どうもIEでエラーが起きて表示できていなかったようで、修正しました。
MacのParallelsが調子悪くてIE試さなかったのはさすがにマズかったか・・・Parallels入れ直そ