NSURL なんとかで cookie を共有

February 22nd, 2007

hibomaのはてなダイアリー - 「Automatorで良いのは、cookieとかのsessionがそのまま利用できるとこ」とのこと

裏を返すと、悪意のあるAutomatorアプリ(もしくはAppleScript)を走らせるとSafariのCookieが透過的に利用されてしまいセッションハイジャックされる危険性がある と。

Automator や AppleScript を使わなくとも、Cocoa の NSURL なんとか系列の API を使う限り、cookie は共有されている感じがします。

require 'osx/cocoa'

url = OSX::NSURL.URLWithString('http://mixi.jp/home.pl')
req = OSX::NSURLRequest.requestWithURL(url)

data = OSX::NSURLConnection.objc_send(:sendSynchronousRequest, req,
                                      :returningResponse, nil,
                                      :error, nil)
print OSX::NSString.alloc.initWithData_encoding(data, 
                                                OSX::NSJapaneseEUCStringEncoding)

例えばこんなスクリプトでも、Safari で mixi にログインしてから実行すれば、ログイン後の home.pl の内容をとってこれます。

追記

「感じがします」とかあいまいな書き方で逃げをうっていたけど、ちゃんと明記されていたので追記。

URL Loading System: URL Loading System Overview

Note: Cookies are shared among all applications using the URL loading system.