セキュアプログラミングの例をrubyで示して
質問
セキュアプログラミングの例をrubyで示して
研鑽Rubyプログラミング 実践的なコードのための原則とトレードオフ [ Jeremy Evans ]価格:3960円(2026/5/8 20:34時点)感想(0件)
解答
Rubyでのセキュアプログラミングは「危険な入力をそのまま使わない」「OSやDBに渡すときは安全な経路を使う」が基本です。よくある脆弱パターンと安全な書き方を対比でいくつか示します。■ 1. OSコマンドインジェクション悪い例(文字列連結で実行)filename = params[:file]system("cat #{filename}") # 任意コマンドを混ぜられる良い例(引数を分ける/検証する)filename = params[:file].to_sraise "invalid" unless filename.match?(/\A[\w.\-]+\z/) # ホワイトリストsystem("cat", filename) # シェルを介さない■ 2. SQLインジェクション悪い例name = params[:name]User.where("name = '#{name}'")良い例(プレースホルダ)name = params[:name]User.where("name = ?", name)# あるいはUser.where(name: name)■ 3. XSS(クロスサイトスクリプティング)悪い例<%= params[:com…
