
고급 보안
Custom authenticator, voter, security expression, CSRF 보호, XSS 방지, rate limiting, 프로덕션 강화, JWT/OAuth2 설정 오류
1Symfony 6 이상에서 custom authenticator가 구현해야 하는 인터페이스는 무엇입니까?
Symfony 6 이상에서 custom authenticator가 구현해야 하는 인터페이스는 무엇입니까?
답변
Symfony 6 이상에서 custom authenticator는 Security HTTP 컴포넌트의 AuthenticatorInterface를 구현해야 합니다. 이 인터페이스는 supports(), authenticate(), onAuthenticationSuccess(), onAuthenticationFailure() 메서드와 선택적으로 createToken()을 정의합니다. 이는 Symfony 4/5에서 사용되던 기존 Guard 시스템을 대체합니다.
2custom authenticator에서 supports() 메서드의 역할은 무엇입니까?
custom authenticator에서 supports() 메서드의 역할은 무엇입니까?
답변
supports() 메서드는 해당 authenticator가 현재 요청을 처리해야 하는지 결정합니다. Request를 받아 불리언 값을 반환합니다. true이면 authenticate() 메서드가 호출된 다음 onAuthenticationSuccess() 또는 onAuthenticationFailure()가 호출됩니다. 이를 통해 동일한 firewall에서 여러 authenticator를 활성화하여 각각 특정 인증 유형을 처리할 수 있습니다.
3custom authenticator의 authenticate() 메서드는 성공 시 무엇을 반환해야 합니까?
custom authenticator의 authenticate() 메서드는 성공 시 무엇을 반환해야 합니까?
답변
authenticate() 메서드는 UserBadge(사용자 식별자)와 credentials badge를 포함하는 Passport 객체를 반환해야 합니다. Passport에는 CsrfTokenBadge나 RememberMeBadge 같은 추가 badge도 포함될 수 있습니다. 그런 다음 Symfony는 이 Passport를 사용하여 인증 token을 생성하고 UserProvider를 통해 사용자를 로드합니다.
특정 리소스에 대한 접근을 제어하기 위한 커스텀 Voter는 어떻게 정의하나요?
엄격한 보안이 필요한 애플리케이션에는 어떤 AccessDecisionManager 전략이 권장되나요?
+19 면접 질문