
Rails 보안
CSRF 보호, SQL 인젝션, XSS, mass assignment, secrets 관리, HTTPS
22 면접 질문·
Senior
1Rails가 CSRF 공격을 방어하기 위해 기본적으로 사용하는 메커니즘은 무엇입니까?
1
Rails가 CSRF 공격을 방어하기 위해 기본적으로 사용하는 메커니즘은 무엇입니까?
답변
Rails는 세션마다 고유한 CSRF 토큰을 생성하고 hidden 필드를 통해 폼에 자동으로 포함시킵니다. 이 토큰은 GET이 아닌 모든 요청에 대해 서버 측에서 검증됩니다. form_with 헬퍼가 이 토큰을 자동으로 삽입하며, protect_from_forgery는 ApplicationController에서 기본적으로 활성화되어 있습니다.
2API controller의 특정 action에서 CSRF 보호를 비활성화하려면 어떻게 해야 하나요?
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]}'")?
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 면접 주제
Ruby 기초
Junior
25개 질문Ruby 객체 지향 프로그래밍
Junior
20개 질문Rails 기초
Junior
18개 질문Routing & Controllers
Junior
22개 질문ActiveRecord 기초
Junior
25개 질문Views와 ERB 템플릿
Junior
20개 질문ActiveRecord 연관 관계
Mid-Level
24개 질문고급 ActiveRecord 쿼리
Mid-Level
28개 질문Rails 폼
Mid-Level
20개 질문인증과 인가
Mid-Level
22개 질문최신 Asset Pipeline 및 프런트엔드
Mid-Level
18개 질문Rails API 모드
Mid-Level
20개 질문RSpec를 사용한 테스트
Mid-Level
24개 질문ActiveJob & Background Jobs
Mid-Level
20개 질문ActionCable & WebSockets
Mid-Level
18개 질문ActionMailer
Mid-Level
18개 질문ActiveStorage
Mid-Level
20개 질문캐싱 전략
Mid-Level
20개 질문고급 마이그레이션
Mid-Level
20개 질문Rails Engines 및 모듈식 앱
Senior
18개 질문성능 최적화
Senior
26개 질문Rails 디자인 패턴
Senior
22개 질문Ruby 메타프로그래밍
Senior
20개 질문Rails에서의 GraphQL
Senior
20개 질문배포 및 프로덕션
Senior
20개 질문Monitoring & Logging
Senior
20개 질문Rails 업그레이드 전략
Senior
18개 질문