0

我开发了一个具有“演示页面”的 Web 应用程序。其中一项业务规则是取消试用用户的登录名/密码 - 同时要求用户拥有有效的电子邮件才能开始试用并单独记录所有用户的操作。

在我看来,这很简单:让我们在 URL 中使用“令牌”作为参数。我们要求用户输入电子邮件,然后使用生成的令牌发送访问链接 - 非常类似于 API,但我们使用 JS 显示 HTML 而不是 JSON 和 XML。在我心里也是一样。

像这样: https ://www.example.com/trial?token=abcdef123456

它运行良好,直到我注意到谷歌已经用一个有效的令牌索引了我们的一个访问链接。如何?

对我来说,这很奇怪。我们的 API 多年来一直使用相同的功能——在 URL 中传递访问令牌。Google 和 Microsoft 的 API 就是这样工作的。唯一的区别是我返回的是 HTML 而不是 JSON。

我们有数字证书、带有 SSL/TLS 加密的 HTTPS。我们使用 RNGCryptoServiceProvider 来生成安全令牌。我们仅通过安全渠道(电子邮件或我们的 https 网站内部)发送代币。

可能发生了什么?我能做些什么来防止它?

我的猜测:谷歌浏览器,也许吧?

4

1 回答 1

0

您发送带有嵌入令牌的访问 URL 的客户很可能最终将其发布到最终被索引的论坛/博客/页面。

场景:例如。我通过电子邮件获得了您的 URL,并决定在博客上介绍您的服务有多酷,并列出 URL 以供人们查看。谷歌机器人来抓取我的博客页面,找到你的链接,去访问它,然后将它与该页面上的所有相关关键字索引。接下来,当搜索与您的网站/业务相关的关键字时,该 URL 将显示为搜索结果。

自检:尝试在 google 上搜索该确切 URL,以显示可能列出它的任何页面。

整治robots.txt

为什么您的 JSON API 不会发生这种情况:API 是供机器使用的。开发人员知道 API 密钥的重要性。除非开发人员粗心/愚蠢地在博客上发布带有 api 密钥的 API 端点,否则这不太可能发生。

在“演示”链接的情况下,除非您在电子邮件中说明,否则业务人员可能不知道他是否应该转发此链接。

于 2017-01-15T23:32:21.563 回答