我没有技术背景,所以我假设对此有一个简单的答案:
为什么 Gravatar 要求您在向他们的系统发送请求之前创建电子邮件地址的哈希值?是否有技术(或社会)理由不只使用电子邮件地址?
这是为了防止将电子邮件地址暴露给收割机。如果在头像 URL 中使用原始电子邮件地址,垃圾邮件发送者通过使用 Gravatar 抓取任何论坛的 HTML/DOM 来获取这些电子邮件地址以用于其邪恶目的将是一项简单的任务。
有两个原因。
原因一:
当你调用 gravatar 时,url 如下所示:
https://www.gravatar.com/avatar/37dj383ks?params=blah
这意味着,在博客或互联网论坛上,作为访客或登录用户阅读使用 gravatar 图像的评论,html 源代码如下所示:
<img src='https://www.gravatar.com/avatar/37dj383ks?params=blah'>
如果它们没有经过哈希处理,您网站的公共HTML 源代码将如下所示:
<img src='https://www.gravatar.com/avatar/ bob_smith@example.com ?params=blah'>
<img src='https://www.gravatar.com/avatar/ susan_suzanna@example.com ?params=blah'>
<img src='https://www.gravatar.com/avatar/ jason123@example.com ?params=blah'>
<img src='https://www.gravatar.com/avatar/ francisbakery@example.com ?params=blah'>
任何使用 gravatar 的网站都会自动公开泄露他们自己用户的每一个电子邮件地址。
原因2:
第二个原因是,任何使用 gravatar 的网站都会自动泄露到 gravatar用户的电子邮件地址。
如果我在一个网站上注册,比如 Stack Overflow,我给 Stack Overflow 我的电子邮件地址,我不希望 Stack Overflow 将我的个人电子邮件地址发送给像 Gravatar 这样的其他公司。
但是,如果我已经给 Gravatar 提供了我的电子邮件地址并设置了个人资料图片,那么我电子邮件的哈希值就是 Gravatar 和 Stack Overflow 都知道的共享哈希值。Stack Overflow 不必信任 Gravatar。Gravatar 不必信任 Stack Overflow。但是通过简单地提供电子邮件的单向哈希,两者都不必实际分发任何用户的敏感信息。