惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Recent Announcements
Recent Announcements
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
MongoDB | Blog
MongoDB | Blog
H
Help Net Security
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
人人都是产品经理
人人都是产品经理
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
The GitHub Blog
The GitHub Blog
V
V2EX
Microsoft Security Blog
Microsoft Security Blog
V
Visual Studio Blog
A
About on SuperTechFans
博客园_首页
L
LangChain Blog
量子位
雷峰网
雷峰网
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Jina AI
Jina AI
月光博客
月光博客
阮一峰的网络日志
阮一峰的网络日志
博客园 - 聂微东
Microsoft Azure Blog
Microsoft Azure Blog
M
MIT News - Artificial intelligence
N
Netflix TechBlog - Medium

Fooleap's Blog

渴望理想 | Fooleap's Blog 19 年底一些事 | Fooleap's Blog 藉秋风,跑起来 | Fooleap's Blog 一个人去跑步 | Fooleap's Blog 8 月的跑量仿佛是那暑假的作业 | Fooleap's Blog 三伏天跑步那么难受,为何还要跑? | Fooleap's Blog 解决小程序开发“当前系统代理不是安全代理” | Fooleap's Blog 忘却配速的夏日跑步 | Fooleap's Blog 六月天时“带水”跑步更爽 | Fooleap's Blog 出来混迟早要还的 | Fooleap's Blog 跑步不能当饭吃 | Fooleap's Blog 将京东移动端详情页链接转为 PC 端 | Fooleap's Blog 不是热就是雨 | Fooleap's Blog 这半月,我跑了 11 个 520 | Fooleap's Blog 跑完流汗一时爽,一直流汗一直爽 | Fooleap's Blog 初夏夜跑 | Fooleap's Blog Electron 中打开 QQ 临时会话 | Fooleap's Blog 春节期间的培隆角 | Fooleap's Blog 从春天跑到夏天 | Fooleap's Blog 晨雾中奔跑 | Fooleap's Blog 漫步春雨中 | Fooleap's Blog 跑在木棉花下 | Fooleap's Blog 我在春节依然坚持跑步 | Fooleap's Blog 伴随着日出跑步 | Fooleap's Blog 没有最好,只有更好 | Fooleap's Blog 电子气温计 | Fooleap's Blog 渡亭小学的金凤花 | Fooleap's Blog 随心而跑 | Fooleap's Blog 2018 跑步小结 | Fooleap's Blog 在 gVim 中使用“非等宽字体” | Fooleap's Blog
暂存 Disqus 匿名评论者邮箱地址 | Fooleap's Blog
fooleap · 2018-08-28 · via Fooleap's Blog

年中,因欧盟的《通用数据保护条例》(GDPR)[1],Disqus 隐藏了评论者电子邮箱及 IP 地址的部分数据[2],Disqus API 的数据也被相应的屏蔽。官方不提供,想要解决问题,那只能自己保存。

IP 地址倒是可有可无,但邮箱地址的屏蔽带来一些困扰。获取匿名评论者邮箱号的作用主要有俩,一是发送回复邮件提醒,二是显示对应的 Gravatar 头像[3]

刚开始我认为发邮件提醒这个功能比较重要,一般评论都会在近几天回复,所以只想到保存近期的邮箱号,以评论 ID 保存了近一个月的邮箱数据。后来意识到这样做太笨了,显示 Gravatar 头像几乎不能,有时还会有很多重复的邮箱号数据。

好在 Disqus 并没有完全屏蔽邮箱,而是隐藏了邮箱号的用户名部分,规则如下:

  • 若用户名是 1 个字符,则替换为”*”,如 u@email.com -> *@email.com
  • 若用户名超过了 1 个字符,则替换除了第 1 个字符外的所有字符为“*”,如 username@email.com -> u*******@email.com

以上规则 PHP 代码可以如下:

$index = strrpos($email, '@');
$start = $index > 1 ? 1 : 0;
$length = $index - $start;
$star = str_repeat('*', $length);
$anonEmail = substr_replace($email, $star, $start, $length);

使用 name 和以上规则处理过的 email,作为识别差强人意。以其 MD5 值为 key,邮箱号为 value。只需要在提交匿名评论时保存,读取评论时匹配取出即可。

参考资料

本文历史

  • 2018 年 08 月 28 日 完成初稿

最近更新

猜你喜欢