問題一覧に戻る
上級パフォーマンスと本番環境
問題70: セキュリティ - CSRF/XSS/SQLインジェクション対策

一般的なセキュリティ脆弱性からRailsアプリケーションを保護する方法を学習します。CSRF保護を実装し、適切な出力エスケープでXSS攻撃を防ぎ、パラメータ化されたクエリでSQLインジェクションを回避し、セキュリティのベストプラクティスに従います。

# ApplicationController
class ApplicationController < ActionController::Base
# CSRF保護を有効化
with: :exception
end

# View - Prevent XSS
# ユーザー入力をサニタイズ
<%= @user_content, tags: %w[p br strong em] %>

# Controller - Prevent SQL Injection
# パラメータ化されたクエリを使用
User.where("name = ?", [:search])

# 許可されたパラメータを定義
def user_params
params.require(:user). :name, :email
end