【问题标题】:url shortener services API final link gets hiturl 缩短服务 API 最终链接被命中
【发布时间】:2014-09-28 09:49:06
【问题描述】:

我使用 URL Shortener 服务(例如 goo.gl 或 bit.ly)在我的应用程序中使用它们各自的 API 来缩短长 URL。这些 API 非常方便,不幸的是我注意到当他们缩短长 URL 时会遇到问题。让我解释一下我遇到的问题。例如,假设我希望用户验证某些内容(例如电子邮件地址或确认信息),并在我的应用程序中向他们建议一个链接供他们访问以验证某些内容。我使用这个长 URL,并使用 API 来缩短它。当我调用缩短 API 时,目标链接(例如 PHP 脚本)被命中,这使得验证过程无用。

一种解决方案是在目标页面上制作一个中间按钮,用户必须单击该按钮进行确认,但该解决方案在验证过程中又迈出了一步,我想简化一下。

我想知道是否有人已经遇到过这个问题,如果有人知道如何解决它。

感谢您的帮助。

【问题讨论】:

  • 无论如何,您都应该验证传递给 PHP 脚本的所有数据,而不仅仅是允许来自任何地方的数据

标签: php url url-shortener bit.ly goo.gl


【解决方案1】:

我无法与 Google 交谈,但在 Bitly,我们会抓取通过我们的服务缩短的部分网址,以支持各种产品功能(垃圾邮件检查、标题提取等),这是您所看到行为的原因。

在这种情况下,我们提出两个建议:

  1. 使用robots.txt 将相关路径标记为“不允许”。这是一种轻量级的保护形式,因为不会强迫客户尊重 robots.txt,但像 BitlyBot 或 GoogleBot 这样表现良好的机器人会尊重您的 robots.txt 文件。
  2. 正如 dwhite.me 在评论中提到的以及您在帖子中所承认的,通常最好不要为响应 GET 请求执行任何状态更改操作。与往常一样,需要对相关风险与更安全方法所增加的复杂性进行判断。

【讨论】:

  • 感谢您的回答。我将尝试按照您的建议实施 robots.txt。关于更改 GET 请求状态的决定:在这种特殊情况下,从缩短 url 到用户访问 URL 之间的时间应该相对较短,并且 cron 删除并取消验证这些链接每过一段时间。但正如我之前所说,在该页面上添加一个确认按钮只会加重验证过程。保存点击在这里很重要。
  • 我也想过在客户端设置一个本地cookie变量,并在验证时检查该cookie,限制用户接受cookie并从同一设备进行验证。
猜你喜欢
  • 1970-01-01
  • 2021-04-04
  • 1970-01-01
  • 2021-05-23
  • 2020-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多