我们正在构build一个登陆页面来与Unifi(v3-beta)一起使用。 登陆页面应该显示一个Facebook(和更晚的LinkedIn)button来login。
他们login后(或允许我们的应用程序),他们无限的访问互联网。
我们可以使用这个白名单Facebook的IP地址: https : //developers.facebook.com/docs/ApplicationSecurity/#facebook_scraper
Facebook使用Akamai作为CDN。 对于Akamai来说,并不那么容易。 他们有更多的IP和不同的AS号码。
有没有办法获得“fbstatic-a.akamaihd.net”背后的所有IP列表?
# nslookup fbstatic-a.akamaihd.net Server: 8.8.8.8 Address: 8.8.8.8#53 Non-authoritative answer: fbstatic-a.akamaihd.net canonical name = fbstatic-a.akamaihd.net.edgesuite.net. fbstatic-a.akamaihd.net.edgesuite.net canonical name = a1168.dsw4.akamai.net. Name: a1168.dsw4.akamai.net Address: 195.10.11.64 Name: a1168.dsw4.akamai.net Address: 195.10.11.43
我们是否应该将Akamai的所有networking(数千个IP)列入白名单?
什么是最好的解决scheme呢?
Akamai可以实现基于DNS的全局负载均衡,因此您的nslookup只会为您提供许多可能结果中的一组结果。 依靠这些将太过荒唐,因为路线可能会改变,Akamai可能会重新安置资源等等。
将所有的Akamainetworking列入白名单是一种方法。
另一种方法是使用squid构build一个透明代理,然后根据URLconfigurationACL(即URL的主机名部分必须是“fbstatic-a.akamaihd.net”)。 虽然透明代理服务器不能很好地与SSL协同工作,所以您可能需要通过DHCP通告代理服务器设置(例如使用PAC文件)
我发现一个有用的select是临时访问一个客人,并要求他login以继续访问。
检查我的门户,如果你想看到确切的实施https://github.com/unifispot