jsセキュリティ メモ
Components.utils.evalInSandbox - MDC
この記事よかった。PHPのregister_globals(だったっけ)みたいな勝手に変数設定されてて思ったのと違う動作をする、っていう視点のセキュリティ考えてなかった。三原則(だったっけ)のintegrity. js(spidermonkey?)も === があるんだー。他の読んでから試してみる。
読んでるけどさっぱりわかんない。
principalが一致するかのチェックが入るので安全なんだけど、その実装に問題があったときにも安全であること、という意味だったら安全じゃない。__parent__経由でchromeのグローバルに変数を作れる。principalのチェックを考慮に入れたら安全。なきがするけんだけどな...
そうだそうだ、そもそもprincipalのレベルでセキュアになることで問題がないとするんだったらXPCNativeWrapperだって必要ないんだ。chrome/contentでセキュリティ、といったらprincipalより上のレイヤでセキュリティを確保できるか、と考えるのが正しいのだろう。
やっぱり自信ない。
wrapperとprincipalの関係をどう捉えたらいいのかがわかんない。
chromeのグローバルに変数が作れるっていうのは Bug 355590 – __parent__ should not expose lexical scope or activation objects でやる感じがするけど、このbugがfixされるよりもまえに書かれた記事なのでこれのことなのかなー。
でもそのあとの(String|Function|Object).prototypeがあれば好き放題できるっていうのもわからないです...