web-dev-qa-db-ja.com

電子メールの代わりにハッシュを提供するためにget_avatarにフックできますか?

私はクラッカーに対する2番目の防御策として、非公開のコメントデータをPPKで暗号化するプラグインを書いています(私のサイトの1つは最近侵害されたため、かなり行動を起こしています)。これを達成するために、私は各コ​​メントのために暗号化された電子メール/ IPを含むメタコメント値を書いています、そしてすべてがテストされたら、管理者はボタンをクリックして安全に平文の電子メール/ IPフィールドを無効にできます。

残念ながら、これはGravatarsが機能しなくなることを意味します。これはプレーンテキストのEメールフィールドを必要とするからです。それで、私はget_avatarフィルターに登録できると信じていますが、言うことができる限り、私はすべてのget_avatar()関数をpluggable.phpに複製する必要があります。明らかにそれはこの機能へのそれ以降のコアアップデートが私のコピーに手動でパッチを当てられなければならないことを意味するでしょう、それはかなり厄介です。

それとも、MD5ハッシュを提供してGravatarのコア機能のその他すべての長所を自動的に得ることができたという見落としがあるかもしれません。私はWPが大好きですが、開発者向けドキュメントはこの:)のためのまばらな面のタッチです

それが不可能な場合は、私は彼らが新しいフィルタを追加することを検討するかどうか私はコアチームに依頼しようとするかもしれません。私は、限られた期間だけ個人データを保存したいと思うブログが、はるかに古いコメントにGravatarsを使用できるようにする方法を認めると考えるべきです。

1
halfer

Gravatar.comから:

GravatarのすべてのURLは、電子メールアドレスのハッシュ値の使用に基づいています( link

コメントデータにEメールアドレスを保存する代わりに、そのEメールアドレスのmd5ハッシュを保存することができます。電子メールアドレスは暗号化されているので、グラバターを使用できます。電子メールアドレスを変更し、後で無効にしないようにするには、フィルタadd_filter( 'preprocess_comment', 'email_to_md5' )を使用します。

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