[#46725] [ANN] win32oleを活用したExcel操縦用ライブラリ exlap.rb — YOSHIIZUMI <t-yoshiizumi@...>
吉泉です。
6 messages
2010/01/04
[#46732] ヒアドキュメント内の変数展開が正常に行われない — ShingoKintaka <kamuycikap@...>
Ruby :1.8.7 (Ubuntu9.10)
12 messages
2010/01/05
[#46733] Re: ヒアドキュメント内の変数展開が正常に行われない
— rubikitch@...
2010/01/06
From: ShingoKintaka <kamuycikap@tulip.ocn.ne.jp>
[#46739] Re: ヒアドキュメント内の変数展開が正常に行われない
— ShingoKintaka <kamuycikap@...>
2010/01/06
るびきちさん、書き込みありがとうございます。
[#46755] [Security] WEBrick has an Escape Sequence Injection vulnerability — Urabe Shyouhei <shyouhei@...>
WEBrick has an Escape Sequence Injection vulnerability
4 messages
2010/01/10
[#46769] WindowsでGUIなRuby実行ファイルの作り方について — ShingoKintaka <kamuycikap@...>
Windows上(XP/Windows7)で開発したWideStudioアプリケーション(Ruby)につ
7 messages
2010/01/14
[#46770] Re: WindowsでGUIなRuby実行ファイルの作り方について
— ShingoKintaka <kamuycikap@...>
2010/01/14
自己レスです。
[#46771] Re: WindowsでGUIなRuby実行ファイルの作り方について
— H. Shimura <shimura-hir@...>
2010/01/14
dllファイルの同梱
[#46772] google-appengine について — 北村寛 <kitayuta@...>
北村と申します。
5 messages
2010/01/14
[#46779] 動的に生成されるメソッドの命名について — Moru <lateau@...>
44Oi44Or44Go55Sz44GX44G+44GZ44CC5pep6YCf44Gn44GZ44GM5LiA44Gk6LOq5ZWP44GV44Gb
5 messages
2010/01/16
[#46800] DLモジュールの使い方 — kouichi_someya@...
染谷と申します。
12 messages
2010/01/20
[#47678] プログラム実行時に「[BUG] Segmentation fault」
— 染谷 康一 <kouichi_someya@...>
2010/12/09
染谷と申します。
[#47681] Re: プログラム実行時に「[BUG] Segmentation fault」
— "U.Nakamura" <usa@...>
2010/12/10
こんにちは、なかむら(う)です。
[#46803] TkTable.rbで"[BUG] Segmentaion fauilt"発生 — 門脇 修司 <kadowaki.shuji@...>
門脇と申します。
9 messages
2010/01/22
[#46805] Re: TkTable.rbで"[BUG] Segmentaion fauilt"発生
— Hidetoshi NAGAI <nagai@...>
2010/01/24
永井@知能.九工大です.
[#46807] Re: TkTable.rbで"[BUG] Segmentaion fauilt"発生
— 門脇 修司 <kadowaki.shuji@...>
2010/01/25
門脇です。
[#46808] Re: TkTable.rbで"[BUG] Segmentaion fauilt"発生
— Hidetoshi NAGAI <nagai@...>
2010/01/25
永井@知能.九工大です.
[#46810] Re: TkTable.rbで"[BUG] Segmentaion fauilt"発生
— 門脇 修司 <kadowaki.shuji@...>
2010/01/25
門脇です。
[#46829] Exerbでexe化したiconvを使ったスクリプトでエラーが発生する — Nakamatsu Shinji <snaka.gml@...>
Ruby-listの皆さんこんにちは。
6 messages
2010/01/30
[ruby-list:46798] Re: ERBを利用した問合せメールシステム開発
From:
okkez <okkez000@...>
Date:
2010-01-20 17:11:11 UTC
List:
ruby-list #46798
okkez です。
2010年1月21日0:31 ShingoKintaka <kamuycikap@tulip.ocn.ne.jp>:
> Shingo Kintakaです。
>
> 現在、会社等で利用される事の多い「問合せフォームCGI」を作成しております。
> 実行環境は@niftyが提供するLacoocanサービス。
http://lacoocan.nifty.com/service/outline.htm
によると Ruby1.8.6 ですね。
長すぎて引用も面倒なのでざっと読んで気付いた点をいくつか。
* コメントが多すぎやしませんか?
変数名やメソッド名が十分にわかりやすい場合はコメントを書かない方がコードが読みやすく
なると思います。RDocとかでドキュメントを書いているならそれはそれで構わないんですが、
コメントの内容はもう少し吟味した方がよろしいかと。
* rescue で全ての例外を捕捉できるわけではありません
resucue 節は捕捉する例外を省略すると StandardError (とそのサブクラス)を捕捉します。
例外クラスについて調べてみてください。
* attr_accessor の引数が PascalCase で気持ち悪い
Ruby ではメソッド名は単語の区切りをアンダーバーにするスタイルが好まれています。
クラス名やモジュール名は PascalCase です。
* ERB#run で binding を渡していないためインスタンス変数が参照できていない
Kernel.#binding というメソッドでそのコンテキストのバインディングを取得できます。
class Foo
def output
@bar = 'barbar'
ERB.new("path_to_erb_template", nil, "-").run(binding)
end
end
みたいな感じです。
この辺はリファレンスマニュアルやるびまをちゃんと読むと書いてあるかもしれません。
http://doc.okkez.net/186/view/class/ERB
CGI にしなくてもローカルで動作確認は出来るはずなので確認してみてください。
* 発生したエラーを標準出力に出力している
logger などを使用してログファイルに出力した方がいいと思います。
また、CGIでよくわからないエラーが出たときは Apache などの HTTP サーバのエラーログを読むと
何かヒントが書いてあるかもしれません。
* 例のスクリプトで hogehoge.jp というドメインが使用されている
example.com や example.jp を使用してください。
例示用の URL では hogehoge.jp とか誰かが所有しているようなドメインは使わないのが無難です。
# 確かもっと強い調子で書かれてる文書がどっかにあったんだけど失念しました
* テンプレート内の <%= ... %> でユーザの入力をそのまま出力している
ユーザの入力は信用してはいけません。ちゃんとエスケープしてください。
ちなみにこの実装には致命的な脆弱性があります。XSS について調べてみてください。
* たまに変数名やメソッド名が微妙に省略されている
変な省略をするよりは完全な名前を書いた方が良いです。
* そもそも素の CGI はやめた方がいいんじゃないでしょうか
現在では Ruby on Rails 以外でも軽量の web アプリケーションフレームワークがいくつかあります。
なので、それらを学んだ方が安全なアプリケーションを手軽に作成出来るのではないでしょうか。
Rack, Sinatra, Ramaze などなど。Lacoocanで使用するのは難しいかもしれませんが。
とりあえず Ruby に関係ありそうな部分はこんなもんだと思います。
# 一部関係ないのもありますが。
HTML や Javascript にもツッコミどころがありますが、それについては自分で調べてください。
主に規格やブラウザごとの挙動の違いを調べるといいと思います。
--
okkez
okkez000@gmail.com