【问题标题】:How SmartyStreets protect my account?SmartyStreets 如何保护我的帐户?
【发布时间】:2018-04-02 13:44:58
【问题描述】:

我正在使用 smartystreets 来验证地址等。我给他们的唯一设置是引荐来源网址。

当我通过传递正确的推荐人向邮递员提出请求时,它工作正常。

如果有人从 AWS CloudFront 提供了相同的标头窃取了我的账户订阅限制

试图了解我的订阅是如何受到保护的。

谢谢。

以下是我可以在没有 smartystreets 订阅的情况下进行查询的方法,

使用 GET 的 URL(引用者:https://smartystreets.com/)标头:

https://us-zipcode.api.smartystreets.com/lookup?auth-id=21102174564513388&agent=smartystreets%20(website%3Ademo%2Fsingle-address%40latest)&city=Tustin&state=CA&zipcode=92780&candidates=5&geocode=true&input_id=0

公开的身份验证令牌ID:21102174564513388

【问题讨论】:

  • 您使用的是网站密钥还是密钥对?
  • 请求是否通过 SSL?如果是这样,那么请求的内容是不可见的。
  • 按 F12 或 Alt Opt I 并在浏览器中检查网络(至少 Chrome),您可以检查整个查询字符串参数并发布从发出呼叫的网络发布到给定端点的数据.
  • @Kannaiyan,SmartyStreets 的创始人。我们非常了解您提出的担忧。虽然您发布的密钥旨在公开,但我们认识到可能有更好的解决方案可用。我们很高兴您与我们联系,并围绕潜在的解决方案进行更好的讨论,以便在更基础的层面上解决这个问题。同时,您的密钥仅限于您的域,并且根据源 IP 地址等限制速率。
  • 首先,最大的攻击媒介之一是有人窃取您的密钥并将其放在另一个网站上。我们防范这种攻击媒介。另一个向量是当他们窃取您的公共/共享网站密钥并尝试在浏览器之外对其进行脚本编写时。在这种情况下,我们还通过基于 IP 和我们收集的一些其他指标的速率限制来防止使用。

标签: amazon-cloudfront smartystreets


【解决方案1】:

您说得对,如果有人设法窃取了您的域名,那么他们将能够使用您的 SmartyStreets 订阅。这里的一线希望是来自使用网站密钥的浏览器的所有请求(旨在用于公共的、面向前端的 javascript 代码)都是速率限制的,从而防止了可能发生的查找次数。如果域被盗,您可以主动删除您帐户中的网站密钥,或者您可以在几分钟内关闭 SmartyStreets 订阅,以防止未经授权的访问。


有关网站密钥及其安全模型基础知识的更多信息:

https://smartystreets.com/docs/cloud/authentication

顺便说一句,我是 SmartyStreets 的后端工程师。

【讨论】:

  • 再次阅读问题。我没有提到窃取我的域名。这是关于从 url 窃取 smartystreet 令牌。我还特别提到了 CloudFront,你可以很容易地做到这一点。我确实把它加粗了,这样就很清楚了。
  • 这个答案很好。 SmartyStreets 通过使用rate limiting 来帮助保护您的帐户。是的,欺骗您的域很容易,这就是网站密钥受到速率限制的原因。为了保护您的帐户,您可以采取的一项很好的额外预防措施是定期轮换您的网站密钥。
  • @SunSparc 即使我轮换密钥,它也没有解决如何保护我的帐户。责任在于消费者而非 Smarty Streets。由于您提供了一个简单的集成选项,因此如果密钥被滥用,则无法保护客户。 rate limiting 仅在来自单个 IP 地址时才有效。如果它来自分布式和基于云的网络,这可以通过云技术轻松完成,速率限制将不起作用。
  • @Kannaiyan 一个非常简单的解决方案是从客户端提取 API 请求,然后从后端服务器运行它们。这样你就不会暴露你的订阅密钥。这样,前端就只是一个接口,而实际的 API 调用是在后端服务器到服务器完成的。
猜你喜欢
  • 2013-04-18
  • 1970-01-01
  • 1970-01-01
  • 2018-07-28
  • 2022-10-23
  • 1970-01-01
  • 1970-01-01
  • 2014-09-02
  • 1970-01-01
相关资源
最近更新 更多