我今天遇到了一个有趣的bug。 我试图在邮件列表中更新我的地址,并且发送了一封电子邮件到新的地址,并带有一个我本应该访问的唯一URL来确认我的请求。 然而,当我点击它,我收到一个错误,该链接已经被使用,现在是无效的。
经过进一步的调查,似乎我组织电子邮件系统中的一些主机在传送邮件之前访问传入邮件中的URL(GET页面),大概是检查链接是否指向某种病毒或其他恶意软件。 显然,邮件列表的确认页面需要额外的点击来实际确认请求,所以这并不实际更新我的订阅,但它确实使URL无效。 因此,我无法更新我的订阅!
问题是:
在这种情况下谁错了? 我应该向谁抱怨? 发送只能工作一次的链接的邮件列表服务器,或者我自己的电子邮件pipe理员谁有一个扫描仪设置访问链接?
我应该避免哪些做法(或两者)? 他们似乎都是反社会的,但似乎都是有道理的。
我可以想象自动访问来自传入电子邮件的随机URL加载更严重的结果; 例如,简单地请求URL可能会引发一些不可逆转的行为,也许是我根本不想做的。 另一方面,要检查电子邮件是否包含恶意链接似乎并不合理,除了通过查看另一端的内容之外,如何检查此信息?
没有人在这种情况下在技术上是“错误的”:电子邮件RFC没有提到访问链接。 事实上,他们并不关心链接或病毒扫描。
既然这个标准在这个问题上是没有什么可违反的。
也就是说,你的电子邮件系统在做什么的时候肯定会让我感觉不到最佳状态。
我当然不会在我的环境中实施这样的系统。
正常的行为是评估URL(string本身),而不是访问它。
这是因为电子邮件中的大量链接不是幂等的 – 例如: