vault backup: 2025-04-29 08:12:08
This commit is contained in:
@@ -124,6 +124,8 @@ La faille de sécurité a malheureusement pu être exploitée par un hacker du n
|
|||||||
L'entreprise utilise l'ORM Peewee pour contrôler sa base de donnée et le model qui nous intéresse est défini comme suit:
|
L'entreprise utilise l'ORM Peewee pour contrôler sa base de donnée et le model qui nous intéresse est défini comme suit:
|
||||||
|
|
||||||
```python
|
```python
|
||||||
|
from datetime import date
|
||||||
|
|
||||||
class User(Model):
|
class User(Model):
|
||||||
name = CharField() # Nom d'utilisateur
|
name = CharField() # Nom d'utilisateur
|
||||||
date_created = DateField() # Date de création du compte
|
date_created = DateField() # Date de création du compte
|
||||||
@@ -137,15 +139,35 @@ On vous demande donc le code Python nécessaire pour effectuer les actions suiva
|
|||||||
|
|
||||||
Vous devez `print` toutes les instances de `User` dont le nom est égal à "clown".
|
Vous devez `print` toutes les instances de `User` dont le nom est égal à "clown".
|
||||||
|
|
||||||
|
```python
|
||||||
|
for user in User.select().where(User.name == "clown"):
|
||||||
|
print(user)
|
||||||
|
```
|
||||||
|
|
||||||
### Exercice 6
|
### Exercice 6
|
||||||
|
|
||||||
#### 1 point max.
|
#### 1 point max.
|
||||||
|
|
||||||
On a de bonne raison de penser que l'utilisateur a créé un compte dans la base de donnée juste avant l'attaque. Il faudrait récupérer le `User` dont la date de création du compte correspond à la date de l'attaque afin de pouvoir le retrouver.
|
On a de bonne raison de penser que l'utilisateur a créé un compte dans la base de donnée juste avant l'attaque. Il faudrait récupérer le `User` dont la date de création du compte correspond à la date de l'attaque afin de pouvoir le retrouver.
|
||||||
|
|
||||||
|
```python
|
||||||
|
hacker = User.get(User.date_created=date(2025, 4, 17))
|
||||||
|
```
|
||||||
|
|
||||||
|
_équivalent à_
|
||||||
|
|
||||||
|
```python
|
||||||
|
hacker = User.select().where(User.date_created=date(2025, 4, 17)).get()
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
### Exercice 7
|
### Exercice 7
|
||||||
|
|
||||||
#### 1 point max.
|
#### 2 point max.
|
||||||
|
|
||||||
Vous devez à présent supprimer toutes les instances de `User` dont le nom est égal à "clown". Bonus si vous le faites en une seule ligne.
|
Vous devez à présent supprimer toutes les instances de `User` dont le nom est égal à "clown". Bonus si vous le faites en une seule ligne.
|
||||||
|
|
||||||
|
```python
|
||||||
|
for user in User.select().where(User.name == "clown"):
|
||||||
|
user.delete_instance()
|
||||||
|
```
|
||||||
|
|||||||
Reference in New Issue
Block a user