
Bezpieczeństwo Rails
Ochrona CSRF, SQL injection, XSS, mass assignment, zarządzanie secrets, HTTPS
1Jaki mechanizm Rails domyślnie wykorzystuje do ochrony przed atakami CSRF?
Jaki mechanizm Rails domyślnie wykorzystuje do ochrony przed atakami CSRF?
Odpowiedź
Rails generuje unikalny token CSRF na sesję i automatycznie umieszcza go w formularzach poprzez pole hidden. Token ten jest weryfikowany po stronie serwera dla każdego żądania innego niż GET. Helper form_with automatycznie wstawia ten token, a protect_from_forgery jest domyślnie włączone w ApplicationController.
2Jak wyłączyć ochronę CSRF dla konkretnej akcji w controllerze API?
Jak wyłączyć ochronę CSRF dla konkretnej akcji w controllerze API?
Odpowiedź
Metoda skip_before_action :verify_authenticity_token wyłącza weryfikację CSRF dla konkretnych akcji. Jest to powszechne w API używających uwierzytelniania opartego na token (JWT, API key) zamiast sesji. Zaleca się ograniczenie tego wyjątku do ściśle niezbędnych akcji za pomocą opcji only.
3Jaka podatność jest wykorzystywana w tym kodzie: User.where("name = '#{params[:name]}'")?
Jaka podatność jest wykorzystywana w tym kodzie: User.where("name = '#{params[:name]}'")?
Odpowiedź
Bezpośrednia interpolacja params w zapytaniu SQL umożliwia SQL injection. Atakujący może wysłać name="'; DROP TABLE users; --", aby wykonać dowolny kod SQL. Zamiast tego należy używać placeholderów ActiveRecord: User.where(name: params[:name]) lub User.where("name = ?", params[:name]).
Która metoda ActiveRecord automatycznie chroni przed SQL injection?
W jaki sposób Rails automatycznie chroni przed atakami XSS w widokach ERB?
+19 pytań z rozmów
Inne tematy rekrutacyjne Ruby on Rails
Podstawy Ruby
Programowanie obiektowe w Ruby
Podstawy Rails
Routing & Controllers
Podstawy ActiveRecord
Widoki i szablony ERB
Asocjacje ActiveRecord
Zaawansowane zapytania ActiveRecord
Formularze Rails
Uwierzytelnianie i autoryzacja
Nowoczesny Asset Pipeline i frontend
Tryb API Rails
Testowanie z RSpec
ActiveJob & Background Jobs
ActionCable & WebSockets
ActionMailer
ActiveStorage
Strategie cachowania
Zaawansowane migracje
Rails Engines i aplikacje modułowe
Optymalizacja wydajności
Wzorce projektowe w Rails
Metaprogramowanie w Ruby
GraphQL z Rails
Wdrażanie i Produkcja
Monitoring & Logging
Strategie aktualizacji Rails
Opanuj Ruby on Rails na następną rozmowę
Uzyskaj dostęp do wszystkich pytań, flashcards, testów technicznych, ćwiczeń code review i symulatorów rozmów.
Zacznij za darmo