我开发了一个具有“演示页面”的 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 网站内部)发送代币。
可能发生了什么?我能做些什么来防止它?
我的猜测:谷歌浏览器,也许吧?