Facebook API:Heroku 服务器的 IP 地址阻塞
Posted
技术标签:
【中文标题】Facebook API:Heroku 服务器的 IP 地址阻塞【英文标题】:Facebook API: IP Address blocking of Heroku servers 【发布时间】:2013-04-21 08:21:37 【问题描述】:我的 Heroku php facebook 应用程序日志中不断出现以下错误:
[app web.20] PHP Fatal error: Uncaught OAuthException: (#5) Unauthorized
source IP address\n thrown in /app/www/sdk/src/base_facebook.php on line 1238
我还注意到,在我回收进程之前,相同的服务器一直在产生这个错误(即在上述情况下,它会是 web.20 和 web.6不断失败),但在heroku ps:restart
之后,将是不同的服务器不断失败。
现在,在做了一些研究之后,我注意到人们一直建议我在 Facebook 应用程序 -> 高级设置页面中将我的服务器 IP 列入白名单,这意味着 Facebook 保留了一份列入黑名单的 IP 列表,您可以在此处允许通过以下方式访问它们一个..这让我想知道为什么 Facebook 清楚地encourages its users to use Heroku for its facebook apps,同时将其服务器列入黑名单。
所以基本上:
-
Heroku 是 Facebook 的托管合作伙伴
每次应用被回收时,Heroku 都会为其用户提供不可预测的 IP 地址
Facebook 已将 Heroku 的许多服务器列入黑名单(据我统计,大约为十分之一)
因此,您永远无法保证您的应用能够针对您的所有请求访问其 API
我的问题是:
像我这样的开发人员如何在 Facebook 赞助的 Heroku 环境中配置生产就绪的应用程序,而这种环境显然必然会在大量 API 请求中失败?
【问题讨论】:
我也觉得这种情况很荒谬。重新启动 heroku 实例,希望它们最终出现在非黑名单上的 ip 上,这不是一个可行的解决方案。这篇文章有两个解决问题的选项。 ***.com/questions/16086615/… +1- 从星期四开始也发生在我们身上。重新启动我们所有的工人解决了这个问题,现在又发生了。 也发生在我身上:( +1 问题很大!我们也在我们的应用程序上看到了这一点...... 也许这不是 Heroku 特有的问题,而是一些 Facebook DoS 预防策略,或者 API 调用限制策略导致误报?如果我理解正确,许多 Heroku 应用程序可以共享同一个 IP 地址,因此 Facebook 可能会收到来自同一个 IP 的大量请求。 【参考方案1】:这很奇怪。我们正在调查。
编辑:这应该得到解决。请注意,由于恶意行为,Facebook 阻止了这些 IP。我们将继续与他们合作以防止再次发生这种情况,但您可以诚实做的最好的事情是使用提供非共享 IP 的托管服务提供商。
也可以在这里查看:https://developers.facebook.com/bugs/649166715098648
【讨论】:
我也经常收到这个问题。几天前才开始发生。在 Heroku 上。 27 号星期六为我开始......当我只运行一个测功机时似乎消失了 同样的事情发生在我们身上,从上周开始,似乎经常发生 当我看到来自 facebook 的流量激增时(即当一个故事变得非常流行时),单一 IP 并不是一个真正的选择。仅在几个小时内阻止违规 IP 怎么样?这样可以防止滥用 API,而不会永久禁用大部分服务器。 使用 Facebook Messenger API 体验这个...偶尔,我必须重新启动我的测功机以重新分配 IP :(【参考方案2】:Facebook 似乎出于某种原因开始屏蔽 Heroku IP。这不是 Heroku 控制的事情,只有 Facebook 可以解决的事情。我会与 Facebook 支持人员取得联系。
【讨论】:
【参考方案3】:在 Heroku 上,试用 Proximo 之类的插件,看看会发生什么。我刚刚在我的设备上进行了配置,现在我正在监控是否会发生同样的情况。
【讨论】:
以上是关于Facebook API:Heroku 服务器的 IP 地址阻塞的主要内容,如果未能解决你的问题,请参考以下文章
来自 Heroku / AWS 的外部 API 的访问被拒绝
在 Heroku 上使用 React、Axios 访问内部 API