Jewel-mmo開発日記

RubyでMMORPGを作る過程を記録する日記。 Yokohama.rb 発起人。
2004-04-20

[開発ログ]WEB拡張パッケージシステム

外部テンプレートの定義システムが動くようになっているものの、これを実装してからは危険すぎてお試し公開すらできなくなってしまった。

HTMLそのものを置き換えることができるので、見た目のみならずリンク構造を変えてインターフェースを作り替えることも可能だ。 ここまではいい。予定通り画期的な拡張パッケージシステムだ。

問題はセキュリティホールだ。テンプレートはrhtmlのなでHTMLの中にRubyスクリプトを埋め込むことができる。これはもう何でもできてしまうということになる。ゲームシステムの変更、データベース改ざん削除、そしてサーバのroot権限の奪取など、文字通り何でもできてしまう可能性がある。

カスタマイズの自由度の高さを維持しつつ安全なシステムを慎重に作らなければならない。思ったよりも時間がかかりそうだ。

total  6001 lines
 .cgi  834
 .rb   3642
 .sql  325
 .txt  43
 .htm  453
 .html 704