Sécurité · Question 3 sur 12
Un paramètre d'URL uid contient la valeur "5 OR 1=1". Que renvoie (int)$uid en PHP 8 ?
1 réponse est correcte. Facile
Afficher la solution
Solution
- B 5
Explication
Le cast (int) convertit une chaîne en entier et lit les chiffres de tête : "5 OR 1=1" devient 5, et la partie SQL ajoutée est abandonnée. Si le texte ne commence pas par un nombre, comme "abc", le cast donne 0. Cela fait de (int) une sanitization simple et efficace pour les ID avant leur traitement. Une TypeError ne survient qu'avec des paramètres de fonction strictement typés, pas avec un cast explicite. Dans les requêtes SQL, on passe néanmoins aussi les nombres comme paramètres nommés, par exemple avec Connection::PARAM_INT.