有没有办法保护我的地址,同时仍然允许Parse.com“接近”查询?

时间:2015-10-19 17:13:42

标签: javascript security parse-platform geolocation

我正在开发一个应用程序,允许用户保存对象,然后查看来自其他用户near的对象。我在geopoint对象上存储Parse.User,并编写了一个查询,查找当前用户附近的其他用户,然后是属于这些用户的对象:

var user = Parse.User.current();
var innerQuery = new Parse.Query(Parse.User);
innerQuery.near("location", user.get("location"));
innerQuery.notEqualTo("objectId", user.id);

var query = new Parse.Query(MyObject);
query.include(innerQuery);
query.matchesQuery("user", innerQuery);
return query.find()

这很有效。但是,我正在尝试保护用户信息 - 我不希望其他用户能够简单地调用user.get("location")并获取另一个用户的精确坐标(以及地址)。

我尝试将CLP设置为_User表以禁止读写,但后来我的查询失败了403(禁止)。

在允许near查询的同时,有没有办法保护我的地理位置?

1 个答案:

答案 0 :(得分:3)

您的内部查询有效,因为默认情况下User类是可公开读取的。缺点是,只要您的班级有find CLP,您就无法保护放在那里的数据。最简单的解决方案是将您的搜索查询移至Cloud,同时在find类CLP中禁用User权限,以保护搜索数据,包括用户的位置。