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

推荐订阅源

博客园_首页
IT之家
IT之家
博客园 - Franky
Stack Overflow Blog
Stack Overflow Blog
宝玉的分享
宝玉的分享
Recent Announcements
Recent Announcements
Engineering at Meta
Engineering at Meta
S
SegmentFault 最新的问题
V
Visual Studio Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Last Week in AI
Last Week in AI
H
Help Net Security
V
V2EX
H
Hackread – Cybersecurity News, Data Breaches, AI and More
量子位
博客园 - 叶小钗
J
Java Code Geeks
博客园 - 【当耐特】
月光博客
月光博客
爱范儿
爱范儿
人人都是产品经理
人人都是产品经理
酷 壳 – CoolShell
酷 壳 – CoolShell
小众软件
小众软件

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 日 完成初稿

最近更新

猜你喜欢