Pages

June 30, 2011

JavaScriptでOAuth認証するときの注意点

JavaScript単体でOAuth認証する場合ConsumerKey/SecretKeyが見えてしまう。

難読化(base64など)ですぐにはバレないようにはできてもいずれ見つかってしますのだけれど、どのように他のJSなアプリは隠しているのだろうか?

単体ではなくサーバプロキシを通せばそんな意識しなくてもいいのだろうけど気になるところではある。

思いつく限りだと、JS本体には置かずバイナリをJSでパースしてキーを使うというものもある。

xhrでバイナリ取得
var xhr = new XMLHttpRequest();
xhr.open('GET', path, false);
xhr.overrideMimeType('text/plain; charset=x-user-defined');
xhr.send(null);
binary_string = xhr.responseText;

binary_stringをbinaryに変換する
bytes = []
for(var i=0, t; i < binary_string.length; i++){
bytes[i] = binary_string.charCodeAt(i) & 0xff;
}

こんなかんじでJS内でバイナリ化して、各自パース処理を書けばいいのではないでしょうか?

隠し方は人それぞれだと想いますが^^;

他の方法としてはyqlを使う方法もあるようですね。

How-to: Secure OAuth in JavaScript

June 29, 2011

nginxでfastcgiを使うとき

Pythonでweb app作ったので動かそうとサーバ周りをいろいろやってみたのだがfastcgiでの動作方法がいまいちよくわからなかった。

apacheのようにhoge.fcgiを指定してやれば動く、というものではないらしくどうすればいいのか結構時間を費やしてしまった。

1つのやり方としてspawn-fcgiを使ってプロセスを生成してやればいいらしい。 それをnginx.confのfastcgi_passに指定してやることでいいみたいだ。

試しにspawn-fcgiを単体起動して動かしてみた。

sudo spawn-fcgi -f test.fcgi -a 127.0.0.1 -p 9001 -u www-data -P /var/run/spawn-fcgi-moin.pid

こんな感じで起動してやればいい。

指定したipとportをnginx.confのfastcgi_passに指定して動けばおk


そんなかんじで。


起動スクリプト書いてみたので参考としてどうぞ



自動起動する場合はUbuntuはchkconfigではなくsysv-rc-confを使うこと。

sudo sysv-rc-conf test_app on

またはupdate-rc.d

June 06, 2011

Python向けtumblr APIライブラリ公開した。

OAuthにしか対応してないtumblr APIライブラリ公開した。
test.pyとかapi.pyとか見ればいいと思うよ。

各API毎のパラメータは公式API DOC見てください。
まぁtumblr api叩いたことある人なら大丈夫だと思うけど。

ということでほい

PyYoshi/Pytumb at master - GitHub

June 03, 2011

libwebpのビルド

Ubuntu 10.04に用意されていないようで自前で用意したときのメモ

$ cd tmp
$ wget http://webp.googlecode.com/files/libwebp-0.1.2.tar.gz
$ tar zxvf libwebp-0.1.2.tar.gz
$ cd libwebp-0.1.2
$ sudo apt-get install automake libtool
$ aclocal && autoconf && automake -a -c;
$ ./autogen.sh
$ ./.configure
$ make
$ sudo make install
$ ls -la /usr/local/lib/libwebp*
$ ls -la /usr/local/include/webp/*
$ ls -la /usr/local/bin/*webp

以上