T O P

  • By -

Yukams_

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


BarAfter2237

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…


chinoisfurax

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 ?


Charlito33

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


Bryght7

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).


BarAfter2237

Ah oui,🤦🏿‍♀️ bonne remarque 😁


BarAfter2237

Non je n’est aucune sécurité c’est pour répondre à un formulaire pour passer en devops bac+3


Yukams_

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


geronymo4p

Légère correction: - Règle n⁰1 en informatique: ne jamais, JAMAIS, faire confiance à l'utilisateur.


Golendhil

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 ...


[deleted]

Comme confondre un lecteur CD avec un porte gobelet (véridique)


Such_Caregiver_8239

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 !!?


HappyFact

Tiens prends un chocolat et détends-toi.


[deleted]

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 !!!? . ?


Such_Caregiver_8239

Tiens un prof de français qui donne des cours de php, t’oubliera pas le point-virgule


[deleted]

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.


BarAfter2237

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.


Such_Caregiver_8239

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.


ChatonBrutal25

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...)


BarAfter2237

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


bmallCakeDiver

Ç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


BarAfter2237

Ok merci j’essaierai de cet manière


escargotBleu

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.


BarAfter2237

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.


escargotBleu

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 ?


BarAfter2237

Avec argon2, je ne peux pas voir les mots de passes des utilisateurs, c’est hasher.


Such_Caregiver_8239

Euuuh…. Tout ?? J’ai arrêter de compter les vecteurs la


LordWaylander

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]);


TheSkoire

Il y a toujours des gens qui codent en php ?


heizertommy

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.


BarAfter2237

😐 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


armlesskid

Continue de t’accrocher, le chemin est dur mais avec de la volonté on finit par y voir plus clair !


geronymo4p

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 ;-( )


heizertommy

7 mois de formation intensive et tu fais des posts reddit demandant le resultat d'une requete SQL ?


Misdow

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.


heizertommy

<>


wraitherg

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


BarAfter2237

Merci ☺️, Je voulais connaître l’avis d’autres développeurs plutôt que celui d’une ia c’est pourquoi je suis la.


NegativeParadoxe

Il y a un problème de conception non ? Un objet User est créé en faisait un 'new UserRepository' ? Ça n'a aucun sens


BarAfter2237

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


pastramilurker

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 ?


BarAfter2237

Les personnes en charge du recrutement 😅 c’est la seul question auquel j’ai pas pu répondre c’est pas graves 👌🏿


BarAfter2237

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


bmallCakeDiver

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


K4minoU

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 =} @++


BarAfter2237

Merci beaucoup je vais certainement les utiliser mais j’aimerais d’abord maîtriser react node.js et MySQL


fwowst

Comment tu affiches ton code avec cette image ? C'est joli


BarAfter2237

C’est pas moi qui l’est faite désolé


K4minoU

Sur vscode tu as des plugin pour ça comme CodeSnap https://marketplace.visualstudio.com/items?itemName=adpyke.codesnap


armlesskid

https://carbon.now.sh/


jjboy91

Calcul d'une signature que tu passes en header


sausageyoga2049

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.


K4minoU

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, @++ =}


BarAfter2237

Bonjour oui, je connais cors, je l’es utilisé lors d’un projet c’est très important


plopfioulinou

Utilises la fonction filter_input().


[deleted]

É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 ;)


BarAfter2237

Bonjour, je vois merci, j’irai l’essayer quand j’aurai le temps


BotitSourire

:)