web-dev-qa-db-fra.com

Changement de mot de passe frontal

Tout d'abord, je m'excuse s'il y a un duplicata de cette itinérance quelque part ... J'ai passé la plus grande partie de l'heure écoulée à chercher la solution, sans aucune chance, mais peut-être que je crains juste pour choisir des mots-clés.

Travaillant actuellement sur un environnement de profil frontal pour un client, l’une des options fournies est la possibilité de définir et de modifier un mot de passe.

Une des choses pour lesquelles je ne semble pas pouvoir trouver de réponse solide est de savoir si je dois ou non prendre des mesures de sécurité pour ce mot de passe saisi par l'utilisateur, ou si la fonction wp_update_user () l'a intégrée.

Au départ, je pensais que je devais utiliser wp_hash_password sur la chaîne qui est transmise à user_pass de wp_update_user ... : P

Alors ... des conseils de sécurité sur la façon dont je peux "correctement" permettre aux utilisateurs de définir et de mettre à jour leurs mots de passe à partir de l'interface, sans utiliser quoi que ce soit en rapport avec le tableau de bord WordPress par défaut?

Merci d'avance pour toute aide que n'importe qui peut fournir.

Prévisualisation rapide du code pour la portion mot de passe du tableau de bord:

Partie du fichier php qui prend le mot de passe entré par l'utilisateur et le stocke

Je prends le mot de passe du formulaire, via AJAX, le saisis avec $ _POST, puis tente de le placer dans la base de données ... en s'assurant simplement que c'est aussi simple que cela, ou s'il y a des mesures de sécurité que je dois prendre en compte ?

$user_data = array(
    'ID'=>$user->ID,
    'user_pass'=>$password
);
wp_update_user($user_data);

entrée de formulaire sur le frontend

<input type='password' name='new_password' placeholder='What would you like your password to be?' id='[xxxx-hidden-for-project-anonymity]' style='text-align: center; text-indent: 0;'/>

UPDATE - Détails plus spécifiques, entrée pas à pas du mot de passe prévu

  1. L'utilisateur est invité à définir son mot de passe, après avoir vérifié son adresse e-mail.
  2. Ils ont mis ce mot de passe dans une entrée de texte.
  3. Sur le formulaire de soumission (la saisie du mot de passe est la seule entrée dans ce formulaire particulier), j'ai AJAX en place pour prendre le mot de passe de l'entrée vers une fonction php qui est connectée à WordPress.
  4. Après cela, il faut mettre à jour leur mot de passe dans la base de données.

J'ai un code qui réalise toutes les étapes ci-dessus. Ma question est la sécurité. Quelles mesures de sécurité dois-je mettre en œuvre lorsque le mot de passe est pris du formulaire à l'appel AJAX, puis qu'il est mesuré dans la fonction PHP alors qu'il est transféré de la fonction à la base de données?

2
Akel

Je pense que vous faites référence à deux choses différentes ..

1) Vérification de la demande. Vous devriez utiliser WP Nonces pour vérifier la requête et la protéger contre XSS. Cela devrait être une pratique pour toutes vos formes. vous pouvez également ajouter une couche de sécurité supplémentaire en intégrant un reCAPTCHA .

2) Data Encryption lorsque vous essayez de hacher le mot de passe. Dans ce cas, votre seule option est d'utiliser SSL. Son utilisation sécurisera tous les transferts de données entre le client et le serveur. En outre, cela va au-delà de ce processus unique de mise à jour du mot de passe.

1
Motaz M. El Shazly