AndroidにiPhoneといったスマートフォンを活用してリアルを充実させていらっしゃることと存じます。今回、私どもは、皆様のスマートフォンからTwitterへ送信することができる位置情報から、住所を特定できるのでは無いか、というありがちだけど実際検証した人は居ない†1仮説に基づき、実際にそれを行えるのかどうかやってみました。今回開発したアプリでは、過去のツイートのうち、位置情報を持っている物を抜き出してGoogleMaps上に配置します。このアプリでは自分の位置情報のみを取得するようにしていますが、誰でも取得できる情報です。実例と結果こちらからアクセスしてください。この画面で「Twitter経由でログインする!」をクリックすると、このようにOAuthの認証画面が現れます。ログインを押して続行できます。ログインに成功すると、このような画面になりますので、「ロード」を押してツイートの読み込みを開始してください。うまく読み込むと、こんな感じで地図上にマッピングされます。このψ(プサイ)という人は関東から...出ていないようです...wズームしていくと...つくばエクスプレスユーザーだと一目で分かってしまいますーー;;自宅周辺では、たくさんのピンが立っているのが特徴なのはもちろん、こういった自宅でしてるっぽいツイートがあるのも特徴です。住所を特定するコツ単に位置情報だけでは通勤・通学で使う駅等で呟いてることが案外多かたりで、それだけで住所まで絞り込むのは難しいです。発言内容も手がかりにしてみてください。生活パターンが分かって怖い...^^;こち亀でGPSの大きな装置を背負って生活してもらう!なんて話が100巻~120巻くらいにありましたけど、それが現実になってるんだな~、って感じです。背負わなきゃいけないほど大きな装置ではありあませんが。住所が第三者からでも特定できちゃいそう!どうすれば?Twitterの設定画面から、あなたの位置情報をすべて消すことができます。書かれている通り、大体30分くらい時間が必要なようです。何か怖いと感じたら消してしまって良いと思います。そもそも位置情報って活用されてるんでしょうか?私はなんとな~くiPhoneの時は毎回入れていましたけど、冷静に考えるとあんまりいらない機能である気がして仕方がありません...w政情不安とか地震とかの超リアルタイム緊急時だったら案外活用されてるのかな。その他sessionでOAuth用のtokenの受け渡しとかが出来るのが便利~。フレームワーク使うとサクサクできていいですね~。ψ(プサイ)ふと思いついたネタを。単純なネタですがこの点に関する注意をしている記事を見た記憶がないので。■概要scaffoldは気をつけて使わないと、ユーザから上書きされてはいけないフィールドが書き換えられる恐れあり。scaffoldは便利だけど、そのままではすこし危険。Rails(バージョン2.2.3)で書きますが、grailsでも同様の問題がありました。is_admin:booleanとしてモデル・コントローラ・ビューを自動生成できますよね。このうち、おそらく管理者かどうかをチェックするためにつけたと思われる「is_admin」が、そのままだと一般ユーザから書き換え放題になります。やるかって?簡単です。newアクションのviewはこうなりますよね。/></p>のチェックボックスの<input>とその後のhiddenな<input>が並んだところをコピーして控えておきます。この部分は、このアプリだけでなく他のアプリを攻撃する際にも使い回せます。(name属性だけ書き換えて再利用します。実際のアプリにおいて、is_adminは管理者が設定するフラグであって、ユーザ側から選択できてはマズいですから、削除すると思います。」となって、falseになっていることが分かります:ところがどっこい、動的にHTMLを書き換えてさっきメモした<input>のコードを動的にフォームの中にコピーすると管理者になれちゃいます!wFirefoxのFirebugや、Chromeのデベロッパーツールを使えば簡単にHTMLを動的に書き換えることできます。プラグインをインストールする必要が無くて楽なChromeで試してみます。HTML」を選びます:すると編集できるようになるので、先程の<input>のコードを<form>のすぐ次くらいにでも張り付けます:これで終わりです。適当にエディット領域外をクリックして編集を終了すると...チェックボックスが出てきます。あとはご想像のとおり。これを黒くチェックして、適当にIDとパスワードを入力すると...はい、管理者ユーザになれました。たしかに、is_adminという名前が分からないと書き換えはできないので、ソースコードを公開してないアプリなら即危ないというわけではありませんが、セキュリティ的にはやっぱりマズイと思います。params[:user][:password])として、そのアクションで何を書き換えるのかをはっきりさせる、とかでしょうか。出力されるformの中身を自動的にチェックして、formの中身以外のがリクエストに混入してたらアウトって出来ないのかなあ?その方がrailsっぽいよね。Ajaxで動的にフォームを生成するときは、そのための設定をするとか。ψ(プサイ)全自動無限ルイズコピペ生成器搭載!これは何?Linux2.6(32bit/64bit)用デバイスドライバです(2.6.32で動作確認しています)。インストールすると/dev/louise_loveが現れ、読み出すとルイズコピペをマルコフ連鎖アルゴリズムに基づいて無限に自動生成し続けます。ちなみに/dev/louise_loveへ書き込むとすべて書き込みを読み捨てますので、自分の書いたポエムも安心して読んでもらえます。64bit/32bitでの動作を確認。ライセンスはGPL3。辞書作成ユーティリティRuby1.9系での動作を確認。動作にはYahoo!デベロッパーネットワークのアプリケーションIDが必要です。(形態素解析に使います)使い方まずはダウンロードして解凍し、フォルダを移動しましょう。louise_love_driver/driverコンパイルするには、普通のプログラムのようにmakeしてください。makeデバイスドライバドライバと同時に、ユーザランドで動くアプリケーションとしてもコンパイルされているので、いきなりデバイスドライバとして組み込むのが不安な方は、安全なユーザランドで試すことができます。./userland_louise_loveとして実行してください。実際にデバイスドライバとしてインストールしてみましょう。root権限が必ず必要です。installおめてとうございます、インストールが完了しました。ルイズたんへの愛を得るにはこのようにしてください。/dev/louise_loveゆっくりルイズたんへの愛を噛み締めたい場合は、moreコマンドなどを使うと良いでしょう。ハードディスクやSSD、USBメモリをルイズたんへの愛で埋める場合には、次のようにしてください(注意:これをやるとHDDのデータが壊れます)。of=/dev/sda/dev/louiseのパーミッションは666なので、書き込みも行うことができます。書き込んだデータはすべてスルーしますので、恥ずかしいポエムも安心して書き込むことができます。/dev/louise_love昨今はアニメが多いですから、ルイズたんへの100年の恋も冷めてしまうかもしれません(一期やってたのもう4年くらい前だし)。大丈夫、アンインストールは次のように簡単にできます。簡単なソースではあるんで、デバドラやマルコフ連鎖の超簡単なサンプルとしてご活用ください。/dev/yoshinoyaなども(つくろうと思えば)簡単にできます。c_source.txtとして出力結果のc_source.txtの中身を、louise_love.cの該当部分に適当に貼りつけてください。<文章ファイル>とするとrubyを使っていくつか文章を作ってくれます。反省点あまりカーネルランドをいじった感が無いのがちょっと...。8割のコードはAPIの名前さえ変えればユーザランドでも動きますし、そもそもデバイスドライバなのに、ハードウェアを触っていません。条件を近づける?ために、一回パイプ通してます。ddで直接やっても変わらなかった。(IPA)の主催する「プログラミング&セキュリティキャンプ2010」の「セキュリティコース/ソフトウェアセキュリティ組」への参加が決定したのでお知らせします。高校の時から参加したかったんですが受験で参加できず、大学入ってからやっとこさの参加でございます。小学校の同窓会と思いっきり被ってるんですが気にしない事にしました(キリッ結局ネットがあるし、同窓会っても本当に8年ぶりに会う人って稀なんだよなあ。それ故に...悔いの残らぬよう、やり遂げなさい。