--- 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が通ればJavaScriptでRefferを消す方法もあるようなのでなんとかなりそうだけど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入れ直そ