请问服务器根据tag推送是否还需要加上registrationId?

标签: #<Tag:0x00007f65911b5398>

private static PushPayload buildPushNotificationTags(Set tags, String alertContent) {
return PushPayload.newBuilder()
.setPlatform(Platform.android_ios())
.setOptions(Options.newBuilder().setApnsProduction(true).build())
.setAudience(Audience.tag(tags))
.setAudience(Audience.registrationId(registrationIds))
.setNotification(Notification.alert(alertContent))
.build();
}

1.如果服务器端不传setAudience(Audience.registrationId(registrationIds)),是否会有安全问题,比如黑客直接根据channel和registrationId就可以监听到推送?
2.如果必须制定registrationIds,那么registrationIds传多个用户是否可以?
3.我们发现不绑定registrationId与tag,黑客直接根据channel和registrationId就可以监听到推送,如果绑定了对应关系是否可以避免该问题

不会存在你所说的安全问题。

1、推送的时候 Audience 根据你自己的业务需求使用 registrationID、tag、alias 等,可以传多个ID


极光最终下发的时候都是以 registrationID为准(要用 tag值发消息到你设备上,首先是需要tag和registrationID绑定的)

2、不存在说别人拿到了你的 registrationID 就可以收到你的信息,这个ID不是客户端生成的,是极光服务器生成的,具有唯一性。

3、极光registrationID的生成规则是必须 App端集成极光的SDK安装到手机上初始化成功,其中你应用的 Appkey、包名、该设备的 IMEI 等信息一起上报到极光服务器,极光服务器会生成 registrationID 返回给你设备。

要收到极光的消息是必须 SDK 与极光建立长连接、符合消息推送的目标条件,才能收到

请问appdaunt调用jPushPlugin.setTags是否就实现了tag和registrationID的绑定?
还是说一定需要调用下面的API?

POST /v3/devices/{registration_id}
更新当前设备的指定属性,当前支持 tags, alias,手机号码 mobile。

我们服务器发现当前调用了jPushPlugin.setTags,但是不使用tag直接监听依然可以获取的message

后者调用。

你们监听是怎么监听?

是这样的,这边请第三方公司做渗透性测试,他们直接使用channel 和 appkey进行监听【没指定tags】,然后监听到了我们根据tags发送的消息

没太理解你们的这个监听具体是放在哪一步?是在手机客户端获取消息?

就是不知道你们监听的时候是极光正常步骤下的传递的信息,还是用什么方法在不连接极光服务器,不在这个本身就应该收到消息的设备上,取到的信息。

没有准确的描述我无法分析你的情况。