Security Flashcards

1
Q

quel sont les 4 concepts de base de security fourni dans SF

A

Sessions cookie, CSRF, authentification (firewall) & authorization (access control)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

qu’est ce que le security provider

A

c’est le mécanisme permettant de recupérer et valider un access (user BDD, memory, LDAP, etc…)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

que signifie l’etat “stateless” du firewall

A

le firewall ne dépend d’une session user pour maintenir l’auth. il faut donc s’auth à chaq request. Ideal pour API

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

que signifie l’etat “stateful” du firewall

A

le firewall stateful va conservé l’etat auth à travers les request par l’intermédiaire de la session.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

a quoi sert l’I UserPasswordHasherInterface

A

a hash un password pour le persist en BDD

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

comment hash un password manually

A

php bin/console security:hash-password

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

que signifie le mode “lazy” dans la config d’un firewall

A

cela permet de ne créer une session que si les users est réellement authorize. Pour éviter de faire travaillé le cache de session pour rien.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

comment récuperer la config d’un firewall suivant une request

A

$this->security->getFirewallConfig($request)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

quels sont les différents modes d’authentification

A

Form Login, JSON login, HTTP Basic, Login Link, X.509 client certificates, Remote users, Custom Authenticators, socialMedia auth (HWIOAuthBundle)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

quels sont les specificité de la connexion par Form Login

A

1/ use FormLoginAuthenticator 2/ config firewall main:form_login 3/ firewall redirect if request non auth page into login_path 4/ FormLoginAuthenticator intercept request & check auth

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

quels sont les specificité de la connexion par JSON login

A

1/ endpoint provide token access 2/ config firewall main:json_login 3/ generate token 4/ sending token each secure request

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

quels sont les specificité de la connexion HTTP Basic

A

1/ basic form login 2/ config firewall main:http_basic 3/ utilise le header WWW-Authenticate response header 4/ pas de logout fonction 5/ browser remember credentials and sent on every request

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

quels sont les specificité de la connexion Login Link

A

systeme d’auth sans password. Le user recoit une URL qui l’auth un certain temps sur le site

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

quels sont les specificité de la connexion Access Tokens

A

systeme de connexion par token qui est emi par un systeme externe

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

quels sont les specificité de la connexion X.509

A

systeme d’auth gérer par le WebServer par certification (config = firewalls.main.x509.provider)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

quels sont les specificité de la connexion Remote User

A

systeme d’auth gérer par le WebServer et des services externe comme Kerberos (config = firewalls.main.remote_user.provider)

17
Q

comment éviter une Brute Force Login Attack

A

1/ installer le bundle “symfony/rate-limiter” permettant de limiter les tentatives de connexion 2/ utiliser l’option login_throttling (utilise le nbr connexion + username + IP Address)

18
Q

Comment gérer de manière plus fine la protection par Brute Force Login

A

impl RequestRateLimiterInterface ou DefaultLoginRateLimiter

19
Q

comment customizer le success ou le fail authentification process

A

implémenter AuthenticationSuccessHandlerInterface / AuthenticationFailureHandlerInterface

20
Q

qui est responsable de récuperer l’obj User

A

Le service Security

21
Q

Quels sont les 3 facons de gérer l’accès à une URL/Resource

A

Access Control / In Controller / Attribute #[IsGranted()] / Voters

22
Q

Quel est la différence entre les status “IS_AUTHENTICATED”, “IS_AUTHENTICATED_FULLY”, “IS_AUTHENTICATED_REMEMBERED” et “IS_IMPERSONATOR”

A

IS_AUTHENTICATED_FULLY signifie que le user à entrer ces access sur la dernière session alors que IS_AUTHENTICATED_REMEMBERED signifie que le user utilise le cookie pour éviter de retapper ces login et IS_IMPERSONATOR signifie que les user est connecté en tant qu’un autre user. Tous ces status sont compris dans le status plus général IS_AUTHENTICATED

23
Q

décrire le mecanisme de controller du user entre les request

A

pour chq request (stateful firewall) dans le firewall, une fois le user serializer dans la session, il est deserializer et passer au user provider (doctrine) pour le refresh. Le system compare le user provenant de la session et celui provenant du refresh.

24
Q

comment gérer les hash des mot de passe

A

utiliser le composant symfony/password-hasher

25
Q

comment vérifier qu’un password est correct

A

avec le composant password-hasher et l’interface UserPasswordHasherInterface et la methode isPasswordValid

26
Q

comment gérer le reset password efficacement

A

utiliser le bundle symfonycasts/reset-password-bundle & make:reset-password

27
Q
A