Episode #234 - January 3rd, 2012
今回は
Gregg Pollack
Nathaniel Bibler
両氏による話。
翻訳(聞き取り+理解)に時間が掛り過ぎるので、1つのエピソードを複数エントリに分けます。
DoS on Hash
G: 12/28にRubyのバージョン1.8.7 patch level 352とそれ以前のすべてのバージョンで、Hashアルゴリズムを利用したDos攻撃の危険が発見されたんだ。
N: 確かに、沢山の人がRubyとかRails使ってるけど、
G: うーん… 確かにそうだけど、いい点だよ。
G: 見つかったバグは、RailsじゃなくてRubyの話で、.hashメソッドのことなんだ。HashをStringに変換するメソッドで、かなり多くのRubyオブジェクトにつかえるんだけど。
N: HashはRuby内でも参照に使ったりするからね。
G:そうだよ。 どうやらRubyはHashを作るのにstaticなやり方をしていて、インスタンスの為にRailsに 現在時刻を見て、自動で合わせて、結果を返していたんだ。 (RubyのHashテーブル利用の説明? よく分からなかった)
N: 確かにそれは良くないな…。 …えっ でもちょっと待って待って、あれ?だれが1.8.7使ってるの?みんな1.9.2にバージョン上げたよね?
G: うん。
N: なんでホントの事言ってくれなかったのwww ちなみに、その問題回避は簡単に出来る?
G: 一見無理なんだけど、HashはStringを元に作られているから、一意のHashを作成するような方法を使えば、多分まだ安全にはなるかも。(?)
Ember.js for Rails 3.1
N: SproutCore 2.0がEmber.jsという名前に先月変更して、James Hartonが最近、sprout-coreというRailsのgemを、最新版を使うようにフォークしたんだ。
使うためには、3つのものを作る必要があって、基本的なプロパティやクライアントとサーバー間…(この辺りが聞き取れない) そして値を変更するとテンプレートが自動的に更新される仕組みなんだ。
この辺りが聞き取れない
N:
G:
N: 前に使うのを諦めた人も、最新版ではRails3.1でも使いやすいようになったから、使ってみるといいかも。
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-19568550-6']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();