web-dev-qa-db-fra.com

Puis-je me connecter à get_avatar pour fournir un hachage au lieu d'un email?

J'écris un plugin pour PPK afin de chiffrer les données de commentaires non publiques comme deuxième ligne de défense contre les pirates (un de mes sites a récemment été compromis, ce qui m'a poussé à agir!). Pour ce faire, j'écris une valeur de méta-commentaire contenant l'e-mail/adresse IP crypté pour chaque commentaire. Une fois que tout a été testé, l'administrateur peut cliquer sur un bouton et annuler en toute sécurité les champs e-mail/IP en clair.

Malheureusement, cela signifie que Gravatars cessera de fonctionner, car cela nécessite un champ de courrier électronique en texte clair. Donc, je crois que je peux m'inscrire sur le filtre get_avatar, mais pour autant que je sache, je vais devoir répliquer toute la fonction get_avatar() dans pluggable.php. Évidemment, cela signifie que toute mise à jour ultérieure de cette fonction devra être manuellement corrigée dans ma copie, ce qui est plutôt inélégant.

Ou y a-t-il quelque chose qui m'a peut-être manqué dans lequel je peux fournir un hachage MD5 et obtenir automatiquement toutes les autres qualités des fonctionnalités de base de Gravatar? J'aime WP, mais les documents de développement sont un contact sur le côté clairsemé pour cette :)

Si cela n’est pas possible, je pourrais peut-être essayer de demander à l’équipe centrale si elle envisagerait d’ajouter un nouveau filtre. Je devrais penser que les blogs qui souhaitent stocker des données personnelles pendant une période limitée apprécieraient un moyen de continuer à utiliser Gravatars sur des commentaires beaucoup plus anciens.

1
halfer

De Gravatar.com:

Toutes les URL de Gravatar sont basées sur l'utilisation de la valeur hachée d'une adresse email ( link )

Au lieu de stocker une adresse électronique dans les données de commentaire, vous pouvez stocker le hachage md5 de cette adresse électronique. L'adresse email est cryptée et vous pouvez utiliser des gravatars. Utilisez le filtre add_filter( 'preprocess_comment', 'email_to_md5' ) pour modifier l’adresse électronique et ne l’annulez pas ultérieurement.

function email_to_md5( $commentdata ){
  if( ! empty( $commentdata['comment_author_email'] ) )
    $commentdata['comment_author_email'] = md5( strtolower( $commentdata['comment_author_email'] ) );

  return $commentdata;
}
2
Ralf912