REXMLのDoS脆弱性に関して

結構致命的な脆弱性なんだけど、そんなに騒がれていないのは何故だろう。まぁ、おかげで攻撃を受ける前に全環境にパッチを当てることができた。商用環境を抱えるとこの辺の動きがどうしても鈍くなる。 まずはRuby公式の発表から。 REXMLのDoS脆弱性 DoS vuln…

AJAXリクエストでもCSRF対策のトークンを自動送信する方法

前回の続きで、「request_forgery_protection」の問題点について。 GETリクエストをスルーしているため根本的にCSRF対策になっていない 宣言したアクションだけにしか適用されないので開発者の宣言漏れの可能性がつきまとう FORMタグを使う部分は問題ないが…

Rails2のCSRF対策はレガシーなAPを保護しない

Rails-2.0がリリースされて半年が過ぎ、既にRails-2.1もリリースされているというのにRubricksはいまだにRails-1.2.6で動いている。というのも、Rubricksが使っているComponentsの仕組みそのものがRails2で消失してしまったため。他の数多のPluginのように外…

Railsのセッション管理にmemcachedを使う

▼ 参照サイト ・HowtoChangeSessionStore ・dreammindの日記 ・夜のDiscovery ・くりまるwebつくる ==[RAILS_ROOT/config/environment.rb]==== ... SESSION_CACHE = MemCache.new(['192.168.0.1:11211'], {:namespace => 'rails'}) ActionController::CgiReq…

autoRuby.jsをDISってみる

http://ceo.sourcelab.jp/archives/97 ちょうどRubricksのユーザやグループの読み仮名の仕様を見直している際にこの記事がホッテントリにあったので興味を持った。着眼点はとても素晴らしい。ギミックはありがちと謙遜されているが、自分は今までWEBアプリで…

Rails2.0Preview登場

Rails2.0のPreviewが出たようです。 Rails本家のBlogに色々機能について書いてあったので読んでみた。下のようなことが書いてあった気がします。 たぶん間違いだらけなので、信用しないで元の文章読んでください。 http://feeds.feedburner.com/~r/RidingRai…

RubyのRssParserとGigazine

Rubyに標準添付されているRssParserでGigazineのフィードから更新日時が取得できない! http://gigazine.net/index.php?/news/rss_2.0/よくよくフィードを見てみた。 ... ... モバイル 2007-08-01T15:30:00+09:00 ... これは・・・間違っている・・・。Gigaz…

Rubyの多重代入と可変長引数

Rubyの多重代入・可変長引数はとても便利だが、トリッキーに使ってしまうとコードが追いにくくなる。リファレンスマニュアルには下記のように例が示されている。 foo, bar = [1, 2] # foo = 1; bar = 2 foo, bar = 1, 2 # foo = 1; bar = 2 foo, bar = 1 # f…

動作確認環境

WindowsXP SP2 Ruby-1.8.6 Rails-1.2.2 MySQL-5.0.27 uta

acts_as_taggable_alternate

Railsで「タグ」を実装する場合には「acts_as_taggable」を利用するのがスタンダードと思われるが、実際に使用してみたところ結構不満点がでてきた。 find_tagged_with なんでAR#findの各オプションが使えないの? 「:include」「:order」「:conditions」あ…

Rubricks on Rails on JRuby

某OSS関係団体の視察で米国Sun Microsystems本社を訪問、Mr.Charles NutterからJRubyの紹介を聞いて感銘を受けたのが2月頃。 帰国してすぐにJRuby0.9.xでRubricksを動かそうとしたけどウンともスンとも言わなかった。 そんなRubricksが、JRuby1.0上で動きま…

Rails/Ajax高速化関係メモ

RubyKaigiでも発表させてもらったのですが、Rubricks0.6リリースに向けてパフォーマンスをがんばって上げております。 以下、つらつらと。 render_componentが遅い render_componentはrequest.dupしてコントローラに投げなおすようなつくりになってて無駄が…

textfieldの個数によってformがsubmitされたりされなかったりする

フォームにフォーカス当てて、Enterを押すとサブミットされる時とされない時があるのに気づいたことはありますか? 衝撃的な事にフォームに含まれるテキストフィールドの個数で挙動が変わるのです。例えば <form> <input type='text' /> </form>の場合、テキストフィールドにフォーカスを合わせ…

Railsのpaginateでdistinctを扱う

ActiveRecordでdistinctを伴うpaginateをやろうとするとなかなかうまく行きません。 いろいろいじくってやり方を編み出したのでメモ。まず、ActiveRecordでfindのdistinctを扱うには下記のようにします。 >> RubricksUser.find(:all, :select => 'distinct *…

JMeterの埋込関数で動的変数を扱う

負荷テストツール「JMeter」を触っているのですが、日本語情報少なかったことを調べたのでメモ。 もはやRubricksと関係ありませんが。 JMeterは負荷ツールなので、たくさんのリクエストをWebサーバに対して発行してくれます。 ただ、一意性確保などの理由で…

DelayedObserver

とあるやりとりで、Rubricksにインクリメンタルサーチのライブラリはないのか、という話がありました。結論としては、ないのです。サブプロジェクトのspinelzにもありません。 しかし、script.aculo.usのライブラリを使えば普通にできる(はず)です。 あま…

todo_list_0.1.0リリース

Todoリストコンポーネントを新たに公開しました。 http://rubyforge.org/frs/?group_id=1494&release_id=8413Todo Listコンポーネントはユーザ個々人のTodoリストを管理する機能を提供します。 ユーザは新たなTodoリストの作成や完了ができます。 ドラッグア…

Rails1.2rc1 追加機能の斜め読み

Rails1.2rc1がでました。DHH氏がブログで概要を書いています。 http://weblog.rubyonrails.com/2006/11/23/rails-1-2-release-candidate-1 斜め読みした感じ、こんなことが書いてあった気がします。 RESTフレームワークの追加 RubyKaigiでもプレゼンしてたAc…

10分で作るTODOリストコンポーネント on Rubricks

Rubricks 0.4にてコンポーネントを作成するためのScaffoldジェネレータを追加いたしました。 このScaffoldを使ったTODOリストコンポーネントを作る動画を作成いたしましたので、公開させていただきます。 http://rubricks.org/scaffold.htmlコメントもなにも…

Rubricks0.3リリース

Rubricks0.3をリリースしました。 カレンダー機能をコアに追加しました。 まだ部品という感じなので何ができるわけでもないのですが、今後スケジューラやTodoなんかを作るときに利用する感じになると思います。たぶん、0.4リリースももうすぐです。 0.4には…

日本Rubyカンファレンス2006参加予定

日本Rubyカンファレンス2006のライトニングトークスでRubricksを紹介させていただけることになりました。 5分間でどこまでできるか難しいところですが、デモ中心に紹介したいと思っています。それにしてもRuby作者、Rails作者の前でプレゼンすることになると…

Seleniumでグローバルな値を扱う

Seleniumにはstoreという一種の変数の仕組みがあって、 store value1 key1 type textElement ${key1} と書くとtextElementには'value1'という値が入る。ただ、storeを使った場合、同一のケースでしか変数にアクセスすることができない。 どこのケースでも共…

Rails勉強会@東京第6回

Rails勉強会@東京第6回でRubricksのセッションを開催させていただきました。 そめえださんがまとめて下さっています。大して準備もしていかなかったので中々わかりづらい説明で申し訳なかったです。 acts_as_approval(簡易ワークフローをモデルに宣言する…

acts_as_searchable を試す(3)

acts_as_searchableを利用したコンポーネントを作ってみた。やっぱりacts_as_searchableの出来は素晴らしく、検索回りが非常に楽になった。それでも敢えて気になる点を挙げてみる。

RubricksにおけるURIの問題(2)

前回の修正によって、アプリケーションの動作的には問題が解決されたが、Functionalテストが全て通らなくなるという問題が発生した。エラー内容は前回と同様に「url_forでURLが生成できません」ということだった。

RubricksにおけるURIの問題(1)

Rubricksではコンテンツを主に6つのパーティションに分割して表示する。5つはコンテンツブロックを入れるためのパーティションで、左・中央・右・中央左・中央右の各パーティションで、残りの1つがメインコンテンツを表示するためのパーティションとなる。そ…

link_to_remote と form_remote_tag にHTMLオプションを渡す

RailsでAjaxを利用するためのヘルパーメソッドとしてlink_to_remoteやform_remote_tagは良く利用するけど、出力される<a>タグにclassやstyle等のHTMLオプションを付け加えたい。Ruby on Rails APIには記述はないけれど、ソースを眺めてみたら指定できるみたい。</a>

SeleniumでXMLのassert

検索結果をAtomフィードの形でも見れるようにしようと実装してみたが、Seleniumテストの際にFireFoxだと文字列を認識してくれないようで、assertがかからない。user-extension.jsに以下の記述をしてオーバーライドすることでとりあえず動作した。

acts_as_searchable を試す(2)

結論から言うととんでもなく便利だ。これはすごい。ARモデルクラスに1行書くだけで自動的にインデックスの更新をしてくれるようになる。 class SampleModel ActiveRecord::Base :acts_as_searchable :searchable_fields => [:col1, :col2] end

acts_as_searchable を試す(1)

RubricksではCMSの上に乗っかるサービスをRailsコンポーネントの形で提供する。そこで各コンポーネントを一元的に検索する窓口として検索機能を提供するべく試行錯誤中なのだが、気になっていたのがacts_as_searchableだ。これは全文検索エンジンであるHyper…