Security 验证订阅/方法源

Security 验证订阅/方法源,security,meteor,publish-subscribe,ddp,Security,Meteor,Publish Subscribe,Ddp,我使用命令来反对: ddp-主机陨石坑.io-端口80订阅postsList 10 我从我的终端连接到DDP,所以我真的需要抓取整个网站。我可以轻松地构建API并实时提取数据。我订阅的是浏览器之外的帖子列表,应该是订阅的地方。如果订阅发生在浏览器之外,我想阻止它 如果订阅使用this.userId来检查登录是否正常,但是像这样的网站不要求登录来显示最新的帖子,那么为某些订阅请求登录是没有意义的 我们为竞争对手提供免费的数据库实时更新 这使得爬行变得容易得多,并且您可以免费获得实时更新。 我怎样才

我使用命令来反对:

ddp-主机陨石坑.io-端口80订阅postsList 10

我从我的终端连接到DDP,所以我真的需要抓取整个网站。我可以轻松地构建API并实时提取数据。我订阅的是浏览器之外的帖子列表,应该是订阅的地方。如果订阅发生在浏览器之外,我想阻止它

如果订阅使用this.userId来检查登录是否正常,但是像这样的网站不要求登录来显示最新的帖子,那么为某些订阅请求登录是没有意义的

我们为竞争对手提供免费的数据库实时更新

这使得爬行变得容易得多,并且您可以免费获得实时更新。
我怎样才能检测到没有从加载整个Meteor应用程序的浏览器中调用订阅/方法?

你不能,这基本上就是Meteor设计的工作方式

除此之外,任何可以在网上公开访问的东西都是天生可以爬行的。这有点像是问你如何在线发布一个页面,但是阻止人们用curl下载它的内容

试试这个:

Meteor.methods({
  MySecureMethod : function(){
    if(this.connection.clientAddress !== 'xxx.xxx.xxx.xxx'){
      throw new Meteor.Error('conexão DDP não permitida para esse host');
    }
  }
});

你不能,任何东西都可以伪造。这里的问题不是爬虫,而是RAM和CPU合并框,因为实时更新。局外人不会每X分钟/小时通过DDP连接一次,他会倾听并获得最新信息。这可能不是今天的问题,但随着流星的普及,这将是一个常见的攻击向量。我很容易浪费你的服务器,没有DDP连接限制。一种足够好的防御方法是迫使攻击者使用phantomjs RAM限制并加载页面以访问数据。我希望MDG能处理好这件事。哦,好吧,你说的更多的是DoS攻击。恐怕我对这方面的了解还不够,无法提供答案,对不起。