Ruby on Rails

Rails のセキュリティ

CSRF 保護、SQL インジェクション、XSS、mass assignment、secrets の管理、HTTPS

22 面接問題·
Senior
1

Rails が CSRF 攻撃から保護するためにデフォルトで使用する仕組みは何ですか?

回答

Rails はセッションごとに一意の CSRF トークンを生成し、hidden フィールドを通じてフォームに自動的に含めます。このトークンは GET 以外のすべてのリクエストでサーバー側で検証されます。form_with ヘルパーがこのトークンを自動的に挿入し、protect_from_forgery は ApplicationController でデフォルトで有効になっています。

2

API controllerの特定のactionでCSRF保護を無効にするにはどうすればよいですか?

回答

skip_before_action :verify_authenticity_token メソッドは特定のactionでCSRF検証を無効にします。これはsessionではなくtokenベースの認証(JWT、API key)を使用するAPIで一般的です。only オプションを使って、この例外を厳密に必要なactionのみに限定することが推奨されます。

3

このコードで悪用される脆弱性は何ですか:User.where("name = '#{params[:name]}'")?

回答

SQLクエリにparamsを直接展開するとSQL injectionが可能になります。攻撃者は name="'; DROP TABLE users; --" を送信して任意のSQLコードを実行できます。代わりにActiveRecordのplaceholderを使用してください:User.where(name: params[:name]) または User.where("name = ?", params[:name])。

4

SQL injectionから自動的に保護するActiveRecordのメソッドはどれですか?

5

Rails は ERB ビューにおいて XSS 攻撃からどのように自動的に保護しますか?

+19 面接問題

次の面接に向けてRuby on Railsをマスター

すべての問題、flashcards、技術テスト、コードレビュー演習、面接シミュレーターにアクセス。

無料で始める