目前我正在处理一项服务,该服务处理覆盖在Google地图上的本地餐馆的评论/推荐。基本上是Yelp,但仅限于一定的利基。无论如何,因为我不想加载每个位置并立即查看,所以我终于开始使用jQuery和AJAX调用。
我的问题是:如何阻止其他人从服务器上的ajax脚本中“抓取”数据?
主要的地图/位置信息功能需要是公开的,因为用户不必登录即可使用该应用程序,因此可能只是简单地归结为使其难以
到目前为止,我所能想到的只有:
答案 0 :(得分:5)
您无法完全保护您的AJAX网络服务。即使你破坏了你的数据并混淆了你的源代码,只需启动一个数据包嗅探器或调试代理,弄清楚它,并从中汲取它。
我要做的就是你提出的建议......只有在网站上有活动会话的用户才能拨打电话。然后从那里开始节流请求。
即使是繁忙的普通用户也不会每分钟发出少量请求。您可以分析日志以确定好的数字。即使您将服务限制为每分钟20次,这种限制也会使那些想要复制所有内容的用户毫无用处。
不要仅限于会话数据......请密切关注IP地址。完全有可能随时发起请求并获得新会话。定期检查您的日志以查看是否有任何问题,并相应地调整您的策略。
最后,定期搜索您的内容。 Google是查找版权侵权者的绝佳工具。如果您使用特定数据(例如GPS坐标),您实际上可以使用坐标的噪声区域中的特定值为坐标添加水印。
答案 1 :(得分:1)
据我所知,您希望保护服务的JavaScript方面。这是不可能的,因为JavaScript基本上是完全开源的(尽管不是公共领域)
Google提供tool called Google Closure,可以通过删除空格和标签来压缩脚本。它还可以通过用随机字符替换变量名称和函数名称来为您混淆文档。它是可定制的,因此您可以告诉它您想要什么。据我所知,谷歌将其用于他们自己的网站(通过查看他们的网页来源显而易见)