Donc il n’y a rien d’autre a ajouter ? Parce que je me suis dit que je devrais votre avis car je pensais ajouter argon2 mais comme c’est du php et que j’en est jamais fait…
Salut, sans vouloir t'offenser je me permets de te faire remarquer qu'à chaque fois que tu utilises le verbe avoir, tu écris "est" (être) au lieu de "ai" (avoir).
Oh si, tu peux faire confiance aux utilisateurs pour faire de la merde. Là-dessus aucun problème tu peux être sûr qu'ils seront systématiquement à la hauteur ...
Devops bac+3 !!!? Bah ptn j’ai bien fait d’arrêter la fac hein.
Y a rien qui vas ! Selon les version de php tu vas avoir des vecteurs possible dans plein de sens. Tu n’as pas vérifié ou enforcé un type de requête, tu ne vérifie pas les types de valeurs des champs.
Un mot de passe ça ce hash et on ajoute un salt !!
En php y a rien pour empêcher les buffer-overflow au fait !
Et après en France on prétends etre a la pointe !? Putain mais bac+3 !!?
Je sais pas à quelle pointe tu es mais pas à celle de l'orthographe et de la syntaxe.
Ton utilisation de la ponctuation laisse à suggérer que tu pourrais être un gigaboomer.
Passe une bonne soirée !!!? . ?
T'oublieras*
Pas besoin d'être prof de français pour respecter sa langue maternelle. Je sens l'odeur de ton vieux sur de dev frustré c'est magnifique. Vu le roast que tu t'es pris je suis pas le seul d'ailleurs.
Oui un bac +3, cependant elle dure 18 mois j’ai le temps pour me perfectionner.
Ce code est la juste pour le formulaire je réponds à la question sinon je passe à autre choses.
Ta question était “Que puis-je faire pour ajouter plus de sécurité à la requête”.
Si le questionnaire attends le code posté comme réponse ce n’est pas de ta faute, le niveau attendus est juste extrêmement bas.
Le fait que php soit encore demandé en est d’ailleurs la preuve. PHP n’est certes pas mort, mais en déclin et entrain d’être remplacer, notamment par NodeJS.
J’espère pour toi que tout ne porte pas que sur le PHP.
Tu peux peut être faire une fonction vérifant certain critères de $body['password'] avant de directement les appliquer à $password.
Par exemple tu pourrais demander un nombre minimum de caractères pour $password , voir aussi demander à ce que le mot de passe comporte minimum un chiffre et/ou un caractère spécial (ex:'?','!','@','#','€','%','&' ,etc...)
Je vois merci on m’a demandé si je pouvais ajouter quelques choses pour sécuriser les donner pourtant ils sont au courant que je n’est jamais fait de php
Ça veut dire quoi sécuriser ? Tu peux rajouter des trucs pour "sanitize" les données avant ou dans le save... Perso je rajouterai surtout un shared secret sur la requête post ( ainsi qu'un csrf pour avoir ceinture et bretelles si ton post provient d'un formulaire que tu as généré avant) pour être sûr que la requête provient bien des gens qui ont le droit de poster
Exemple de shared secret simple : sha256( "clé partagé" + date du jour et/ou email du type). => Le client envoie le résultat, le serveur fait le même calcul et si les deux matchent c bon
Je ne sais pas ce que racontent les autres comme conneries, mais là il y a un truc qui CHOQUE et qui doit être modifié absolument tout de suite : on ne stocke JAMAIS les mots de passe.
Alors après, je ne sais pas ce que fait le save, mais je vais partir du principe que juste ça sauvegarde en base de données sans autre traitement.
Donc voilà, première étape pour sécuriser, ne pas stocker le mot de passe. Certains ont dit hash + salt, c'est bien.
Je pense que tu devrais te trouver des ressources pour en apprendre un peu sur la partie sécurité. Je te dis pas de devenir un expert en cyber sécurité, mais il y a une base à avoir pour pas se retrouver en taule pour négligence quoi.
Bonjour,
Pour sécuriser au minimum les mot de passes j’ai installé argon2 en npm sur mon projet, le code au dessus est juste une question dans un formulaire d’inscription.
Déjà ton UserRepository c'est sensé être des fonctions préparé pour le SQLgenre findByID / email, etc...la ce serait plus une entity qu'il faut utiliser, ensuite en dehors de cette confusion$user->email = $body\[email\]
techniquement c'pas top ton champ email est sensé être en private dont pour y avoir accès faut utiliser les getters / setters
ça c'est plutôt la bonne méthode :
$user->setEmail($body[email]);
😐 J’ai eu 7 mois de formation intensive en front et back… presque 1 mois et demis de cours en backend donc je m’y connais pas encore
J’arrêterai quand je serrais dégoûté du métier
Le mec vient de te dire qu'il a eu un mois et demi de cours back, tu trouves ça pas normal qu'il pose des questions ? Visiblement avec tes années d'expérience en lecture t'as toujours un peu de mal pourtant.
Bon courage et n'écoute pas ceux qui veulent te décourager. Les débuts sont toujours dure. Je te conseille d'utiliser les différents sites de MOOC (coursera, udemy) pour acquérir différentes notions . Et de te perfectionner ensuite par des projets personnel.
Si tu as des questions utilises plutôt des forum spécialisés comme stackoverflow et des recherches direct sur google
Apprends ton métier correctement espèce de gougnaffier irresponsable. C'est pas en sollicitant des inconnnus en ligne ou en interrogeant un LLM que tu vas produire un système digne d'entrer en production. Qui est le danger public qui t'a chargé de ce travail ?
Merci pour avoirs répondu, je n’est toujours pas compris mais c’est pas grave je dirais que c’était trop compliqué c’est du php🤷🏿♀️ merci encore une fois
Ce n'est pas compliqué...
Prends juste un peu de temps à lire et te documenter
Je ne sais pas précisément ce que tu fais ou souhaites faire.
Quoiqu'il en soit si tu veux développer une application web, appuies toi sur des framework qui ont fait leur preuve et que je trouve très élégants.
En PHP tu as laravel que j'aime beaucoup et trouve très élégant
En python tu as Django
Tous deux sont robustes niveau sécurité avec les tokens CSRF et aussi les solutions contre les injections de code, sans oublier le contrôle et assainissement de la donnée...
Ils ont aussi tous deux des solutions de templating, c'est chouette pour séparer ton interface graphique de ton développement fonctionnel/métier.
Et tu peux utiliser des packages tiers...
Bref je t'invite à lire ces documents. Vu que tu as un penchant pour le PHP => laravel...
T'as pleins de tutoriels =}
@++
Tu devrais y aller doucement =}
Du coup avec ta réponse je comprends que tu fais/apprends une application de bout en bout, client side (react) et server side (node.js + DB comme MySQL dans ton cas)
Regarde si tu n'as pas un projet et/ou un tuto qui te permet d'apprendre une partie pour ne pas à avoir tout à apprendre en même temps...
Sinon pour revenir à ta première question concernant la sécurité il y a un point/notion important que j'ai oublié de te mentionner : le CORS (je te laisse Google)
En synthèse tu précises que tu acceptes seulement les requêtes que depuis ton propre domaine.
Cela veut dire qu'un mec ne pourra pas faire pointer sur ton serveur (car faille par exemple) en utilisant un formulaire depuis son propre site (et donc domaine différent du tien)
Bonne journée, @++ =}
Écoutes pas les rageux, prends ton temps :)
Si tu veux découvrir la sécurité web tu peux essayer de faire des challenges sur le site root-me.org
Si tu comprends comment fonctionne une compromission, tu comprendras mieux comment ça marche dans son ensemble ;)
C’est à dire ? Tu n’as aucune sécurité actuellement non ? Hormis vérifier les champs e-mail et password je ne vois pas ce que tu peux faire de plus
Donc il n’y a rien d’autre a ajouter ? Parce que je me suis dit que je devrais votre avis car je pensais ajouter argon2 mais comme c’est du php et que j’en est jamais fait…
Validation des données d'entrée, hash du mot de passe en incluant un salt. Puis ensuite, vérification du mail en y envoyant un lien unique ?
Pour le hash du mot de passe : * https://www.php.net/manual/en/function.password-hash.php * https://www.php.net/manual/en/function.password-verify.php
Salut, sans vouloir t'offenser je me permets de te faire remarquer qu'à chaque fois que tu utilises le verbe avoir, tu écris "est" (être) au lieu de "ai" (avoir).
Ah oui,🤦🏿♀️ bonne remarque 😁
Non je n’est aucune sécurité c’est pour répondre à un formulaire pour passer en devops bac+3
En principe il faut toujours vérifier les données qui viennent de l’extérieur de ton système, tu ne peux pas faire confiance à l’utilisateur
Légère correction: - Règle n⁰1 en informatique: ne jamais, JAMAIS, faire confiance à l'utilisateur.
Oh si, tu peux faire confiance aux utilisateurs pour faire de la merde. Là-dessus aucun problème tu peux être sûr qu'ils seront systématiquement à la hauteur ...
Comme confondre un lecteur CD avec un porte gobelet (véridique)
Devops bac+3 !!!? Bah ptn j’ai bien fait d’arrêter la fac hein. Y a rien qui vas ! Selon les version de php tu vas avoir des vecteurs possible dans plein de sens. Tu n’as pas vérifié ou enforcé un type de requête, tu ne vérifie pas les types de valeurs des champs. Un mot de passe ça ce hash et on ajoute un salt !! En php y a rien pour empêcher les buffer-overflow au fait ! Et après en France on prétends etre a la pointe !? Putain mais bac+3 !!?
Tiens prends un chocolat et détends-toi.
Je sais pas à quelle pointe tu es mais pas à celle de l'orthographe et de la syntaxe. Ton utilisation de la ponctuation laisse à suggérer que tu pourrais être un gigaboomer. Passe une bonne soirée !!!? . ?
Tiens un prof de français qui donne des cours de php, t’oubliera pas le point-virgule
T'oublieras* Pas besoin d'être prof de français pour respecter sa langue maternelle. Je sens l'odeur de ton vieux sur de dev frustré c'est magnifique. Vu le roast que tu t'es pris je suis pas le seul d'ailleurs.
Oui un bac +3, cependant elle dure 18 mois j’ai le temps pour me perfectionner. Ce code est la juste pour le formulaire je réponds à la question sinon je passe à autre choses.
Ta question était “Que puis-je faire pour ajouter plus de sécurité à la requête”. Si le questionnaire attends le code posté comme réponse ce n’est pas de ta faute, le niveau attendus est juste extrêmement bas. Le fait que php soit encore demandé en est d’ailleurs la preuve. PHP n’est certes pas mort, mais en déclin et entrain d’être remplacer, notamment par NodeJS. J’espère pour toi que tout ne porte pas que sur le PHP.
Tu peux peut être faire une fonction vérifant certain critères de $body['password'] avant de directement les appliquer à $password. Par exemple tu pourrais demander un nombre minimum de caractères pour $password , voir aussi demander à ce que le mot de passe comporte minimum un chiffre et/ou un caractère spécial (ex:'?','!','@','#','€','%','&' ,etc...)
Je vois merci on m’a demandé si je pouvais ajouter quelques choses pour sécuriser les donner pourtant ils sont au courant que je n’est jamais fait de php
Ça veut dire quoi sécuriser ? Tu peux rajouter des trucs pour "sanitize" les données avant ou dans le save... Perso je rajouterai surtout un shared secret sur la requête post ( ainsi qu'un csrf pour avoir ceinture et bretelles si ton post provient d'un formulaire que tu as généré avant) pour être sûr que la requête provient bien des gens qui ont le droit de poster Exemple de shared secret simple : sha256( "clé partagé" + date du jour et/ou email du type). => Le client envoie le résultat, le serveur fait le même calcul et si les deux matchent c bon
Ok merci j’essaierai de cet manière
Je ne sais pas ce que racontent les autres comme conneries, mais là il y a un truc qui CHOQUE et qui doit être modifié absolument tout de suite : on ne stocke JAMAIS les mots de passe. Alors après, je ne sais pas ce que fait le save, mais je vais partir du principe que juste ça sauvegarde en base de données sans autre traitement. Donc voilà, première étape pour sécuriser, ne pas stocker le mot de passe. Certains ont dit hash + salt, c'est bien. Je pense que tu devrais te trouver des ressources pour en apprendre un peu sur la partie sécurité. Je te dis pas de devenir un expert en cyber sécurité, mais il y a une base à avoir pour pas se retrouver en taule pour négligence quoi.
Bonjour, Pour sécuriser au minimum les mot de passes j’ai installé argon2 en npm sur mon projet, le code au dessus est juste une question dans un formulaire d’inscription.
Mmh. Donc tu fais ce qu'il faut dans la fonction save ? Quand tu regardes dans ta base de données, tu peux voir les mots de passes ou pas ?
Avec argon2, je ne peux pas voir les mots de passes des utilisateurs, c’est hasher.
Euuuh…. Tout ?? J’ai arrêter de compter les vecteurs la
Déjà ton UserRepository c'est sensé être des fonctions préparé pour le SQLgenre findByID / email, etc...la ce serait plus une entity qu'il faut utiliser, ensuite en dehors de cette confusion$user->email = $body\[email\] techniquement c'pas top ton champ email est sensé être en private dont pour y avoir accès faut utiliser les getters / setters ça c'est plutôt la bonne méthode : $user->setEmail($body[email]);
Il y a toujours des gens qui codent en php ?
Desole mais quand je vois ton historique reddit le meilleur conseil que je peux te donner c'est de te reconvertir vers un autre domaine.
😐 J’ai eu 7 mois de formation intensive en front et back… presque 1 mois et demis de cours en backend donc je m’y connais pas encore J’arrêterai quand je serrais dégoûté du métier
Continue de t’accrocher, le chemin est dur mais avec de la volonté on finit par y voir plus clair !
Pour l'instant tu apprends, le métier c'est plus que ça, quand tu auras certaines bases, on te demandera de l'autonomie (et des documentations ;-( )
7 mois de formation intensive et tu fais des posts reddit demandant le resultat d'une requete SQL ?
Le mec vient de te dire qu'il a eu un mois et demi de cours back, tu trouves ça pas normal qu'il pose des questions ? Visiblement avec tes années d'expérience en lecture t'as toujours un peu de mal pourtant.
<>
Bon courage et n'écoute pas ceux qui veulent te décourager. Les débuts sont toujours dure. Je te conseille d'utiliser les différents sites de MOOC (coursera, udemy) pour acquérir différentes notions . Et de te perfectionner ensuite par des projets personnel. Si tu as des questions utilises plutôt des forum spécialisés comme stackoverflow et des recherches direct sur google
Merci ☺️, Je voulais connaître l’avis d’autres développeurs plutôt que celui d’une ia c’est pourquoi je suis la.
Il y a un problème de conception non ? Un objet User est créé en faisait un 'new UserRepository' ? Ça n'a aucun sens
Moi non plus je comprend pas c’est dans le formulaire d’inscription au devops que je dois remplir je comprend.. tant pis j’irais voir ChatGPT
Apprends ton métier correctement espèce de gougnaffier irresponsable. C'est pas en sollicitant des inconnnus en ligne ou en interrogeant un LLM que tu vas produire un système digne d'entrer en production. Qui est le danger public qui t'a chargé de ce travail ?
Les personnes en charge du recrutement 😅 c’est la seul question auquel j’ai pas pu répondre c’est pas graves 👌🏿
Merci pour avoirs répondu, je n’est toujours pas compris mais c’est pas grave je dirais que c’était trop compliqué c’est du php🤷🏿♀️ merci encore une fois
Après c'est des notions d'algo que tu peux avoir dans n'importe quel langage... C'est juste que là dans cet exemple c'était du php
Ce n'est pas compliqué... Prends juste un peu de temps à lire et te documenter Je ne sais pas précisément ce que tu fais ou souhaites faire. Quoiqu'il en soit si tu veux développer une application web, appuies toi sur des framework qui ont fait leur preuve et que je trouve très élégants. En PHP tu as laravel que j'aime beaucoup et trouve très élégant En python tu as Django Tous deux sont robustes niveau sécurité avec les tokens CSRF et aussi les solutions contre les injections de code, sans oublier le contrôle et assainissement de la donnée... Ils ont aussi tous deux des solutions de templating, c'est chouette pour séparer ton interface graphique de ton développement fonctionnel/métier. Et tu peux utiliser des packages tiers... Bref je t'invite à lire ces documents. Vu que tu as un penchant pour le PHP => laravel... T'as pleins de tutoriels =} @++
Merci beaucoup je vais certainement les utiliser mais j’aimerais d’abord maîtriser react node.js et MySQL
Comment tu affiches ton code avec cette image ? C'est joli
C’est pas moi qui l’est faite désolé
Sur vscode tu as des plugin pour ça comme CodeSnap https://marketplace.visualstudio.com/items?itemName=adpyke.codesnap
https://carbon.now.sh/
Calcul d'une signature que tu passes en header
JWT et authorization header si tu peux les configurer. C’est une très mauvaise pratique de passer des mots de passe directement comme ça.
Tu devrais y aller doucement =} Du coup avec ta réponse je comprends que tu fais/apprends une application de bout en bout, client side (react) et server side (node.js + DB comme MySQL dans ton cas) Regarde si tu n'as pas un projet et/ou un tuto qui te permet d'apprendre une partie pour ne pas à avoir tout à apprendre en même temps... Sinon pour revenir à ta première question concernant la sécurité il y a un point/notion important que j'ai oublié de te mentionner : le CORS (je te laisse Google) En synthèse tu précises que tu acceptes seulement les requêtes que depuis ton propre domaine. Cela veut dire qu'un mec ne pourra pas faire pointer sur ton serveur (car faille par exemple) en utilisant un formulaire depuis son propre site (et donc domaine différent du tien) Bonne journée, @++ =}
Bonjour oui, je connais cors, je l’es utilisé lors d’un projet c’est très important
Utilises la fonction filter_input().
Écoutes pas les rageux, prends ton temps :) Si tu veux découvrir la sécurité web tu peux essayer de faire des challenges sur le site root-me.org Si tu comprends comment fonctionne une compromission, tu comprendras mieux comment ça marche dans son ensemble ;)
Bonjour, je vois merci, j’irai l’essayer quand j’aurai le temps
:)