验证订阅/方法来源

时间:2014-11-25 03:17:57

标签: security meteor publish-subscribe ddp

我使用DDP tool使用crater.io命令:

ddp --host crater.io --port 80 subscribe postsList 10

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

如果订阅使用this.userId来检查登录是否正常,但像crater.io这样的网站没有要求登录向您显示最新帖子,那么请求登录是没有意义的对于一些订阅。

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

这使得抓取更容易,您可以免费获得实时更新。 如何检测未从加载整个Meteor应用程序的浏览器调用订阅/方法?

2 个答案:

答案 0 :(得分:0)

你不能,这基本上是Meteor的设计方式。

此外,任何可在线公开访问的内容也具有内在可抓取性。所以这有点像询问如何在线发布页面,但阻止人们使用curl下载其内容。

答案 1 :(得分:0)

试试这个:

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');
    }
  }
});