personne n'est du meme avis pour un simple exit...
va falloir revoir les questions
personne n'est du meme avis pour un simple exit...
va falloir revoir les questions
C'est pourquoi un qcm sans contexte ou explications des réponses du postulant ne me semble pas terrible
Idem, pour la question "Quelle est la meilleure fonction PHP à appliquer aux paramètres reçus (en GET ou POST) pour protéger une application contre les attaques XSS ?", 3 des réponses proposées me semblent valides.
J'ai testé mon questionnaire sur 2 personnes ce matin (en rajoutant un petit bout de code à corriger), et en demandant une petite phrase justificative pour chaque réponse de QCM. ça s'est révélé assez concluant : l'un (bon mais inexpérimenté) n'a pas su répondre grand chose, alors que l'autre (assez expérimenté) a fait les bons choix et les a bien argumentés, et le résultat est donc assez représentatif de ce que je peux demander à ces personnes en PHP.
La méthode est perfectible et je souhaite laisser ce sujet ouvert pour continuer à en débattre, mais je pense être sur la bonne piste . Le but étant de faire de ce topic une sorte de catalogue de questions
@Doksuri : pour la question de l'exit, je suis certain d'avoir raison, ceux qui prétendent le contraire manquent d'expérience
@Djakisback : la solution la plus efficiente (efficacité contre XSS tout en conservant l'essentiel des contenus reçus / coût) est clairement le htmlspecialchars(ENT_QUOTE). Il y en a d'autres qui fonctionnent, mais soit elles altèrent les contenus reçus, soit elles sont moins performantes, soit les 2. Je tiens l'information d'experts en sécurité intervenus dans le cadre d'un audit dans une société dans laquelle je travaillais.
je pense aussi que faire la difference entre les diifferents modificateurs et à quel moment les utilisées est un bon moyen de pouvoir évaluer le niveau de compétence d'un développeur en général et d'un dev php en particulier
- public
- private
- static
- protected
- abstract ...
de même que les concepts lier a l'orienté objet comme l'héritage(multiple ou non ), l'encapsulation...
Les QCM si bien utilisé ne sont pas forcément mauvais, par contre il faut que les questions soient très précises.
Par exemple :
J'aurais plutôt posé la question comme ceci : Du code continue t'il de s'éxecuter après un header("Location:") C'est moins tendancieux.Un exit() est nécessaire après une redirection en header('Location:...') :
a. Vrai
b. Faux
Là j'aurais envie de dire ni l'une ni l'autre. Je te répondrais que je met ce genre de chose dans un fichier de config qui généralement est accessible depuis un Registre. Encore une fois la question est sans doute un peux trop évasive , ou alors il manque une réponse "autre"Quel est le meilleur moyen de stocker des chemins d’accès (vers une bibliothèque, un dossier d'upload, etc.) ?
a. Des variables super-globales ($GLOBALS)
b. Des constantes
c. Des variables simples, passées uniquement aux fonctions qui en ont besoin
Des remarques ont déjà été fait sur celle-çi. On ne connait pas le contexte. A quoi sont vouées ces variables. Bref là je me sens en difficulté alors que dans un cas concret je saurais faire.Quelle est la meilleure fonction PHP à appliquer aux paramètres reçus (en GET ou POST) pour protéger une application contre les attaques XSS ?
a. strip_tags
b. addslashes
c. htmlspecialchars
d. htmlentites
Cette question serais à mon sens plus simple avec un extrait de code du genre :
Le code suivant est il sécurisé ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $nom = $_POST['nom_user'] echo $nom;
a. Oui
b. Non
Quelles améliorations pourraient être apportées (performance , sécurité ...)
a. Aucune
b. .....
Toujours pas d'accord. Si un de tes développeurs rajoute du code après c'est une erreur de sa part qu'il faudra réparer. Si tu as ajouté un exit, tu auras du code mort. C'est loin d'être propre.
Je te trouve bien présomptueux
Je reste dubitatif face à des questions qui ont tendance à déclarer des méthodes inéluctables sans se préoccuper du contexte. L'informatique est loin d'être si rigide.
@grunk : tout à fait d'accord
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager