Me: " et que ces variables sont en fait des constantes"
Oui, dans le cas présent, ce n'est pas injectable si tu considère tout le code, qui a surement été modifié pour les besoins post.
De plus, constantes ou pas, si tu codes avec une espèce de "vision d'ensemble", en te disant "je sais que, dans cette instruction-ci, telle variable vient de tel endroit sûr", alors tu vas créer des dépendances cachées qui te porteront préjudice par la suite.
J'ai souvent vu passer des
Du coup, à la relecture, on me dit "Boah non, c'est pas injectable, regarde: ça vaut 42" ou "Je fais l'échappement avant d'appeler doThis". Je ne te dis pas le bazar que c'est 6 mois après, quand quelqu'un d'autre fait un doThis($truc): t'es obligé d'analyser tout le code pour savoir si c'est injectable (aka, tu simules mentalement l'exécution du code).
Allez, pour le coup, j'essaie de synthétiser l'idée en un article
Oui, dans le cas présent, ce n'est pas injectable si tu considère tout le code, qui a surement été modifié pour les besoins post.
De plus, constantes ou pas, si tu codes avec une espèce de "vision d'ensemble", en te disant "je sais que, dans cette instruction-ci, telle variable vient de tel endroit sûr", alors tu vas créer des dépendances cachées qui te porteront préjudice par la suite.
J'ai souvent vu passer des
function doThis($id) {
query("SELECT ... WHERE id=".$id);
}
...
doThis(42);
Du coup, à la relecture, on me dit "Boah non, c'est pas injectable, regarde: ça vaut 42" ou "Je fais l'échappement avant d'appeler doThis". Je ne te dis pas le bazar que c'est 6 mois après, quand quelqu'un d'autre fait un doThis($truc): t'es obligé d'analyser tout le code pour savoir si c'est injectable (aka, tu simules mentalement l'exécution du code).
Allez, pour le coup, j'essaie de synthétiser l'idée en un article