我正在开发一个Windows Phone 7应用程序,为此,我需要一个Web服务来发送实时磁贴推送通知。我将客户端URI通道保存在数据库中,每隔一小时我就会向所有订阅的客户端发送正确的实时磁贴。我不会向客户端发送任何敏感数据,客户也不会向服务发送任何数据,除了他们的通道URI,我已经确保保护数据库不受任何sql注入。
公开的方法用于注册和取消注册客户端,以及将正确的实时磁贴发送给请求它的客户端。
鉴于此信息,是否有人就如何保护服务提出任何建议,或者在这种情况下甚至需要安全性?
谢谢!
编辑: 谢谢你的回答!我的同行决定不使用任何安全性,除了清除来自数据库的错误请求,因为应用程序的范围非常有限并且没有传输敏感数据。我们希望以后不会在我们的后面咬我们,呃!
答案 0 :(得分:1)
不幸的是,此问题的最佳解决方案(目前)是在您的应用中生成哈希并使用它来验证数据是否真的来自您的应用。显然,如果这样做,你需要混淆tyour代码。
如果没有针对后端的任何身份验证,这是最好的。
如果可以,让用户注册并使用后端进行身份验证,然后将此身份验证令牌绑定到设备的ANID,并通过SSL执行所有操作。
不幸的是,无需登录后端,WP7的当前服务安全性和防止spoffed请求是非常棘手的。
答案 1 :(得分:0)
确保使用SSL将频道保护到后端服务。这样,您发送到服务器的数据(如ChannelUri)将是安全的。
在您的应用程序中构建哈希是不安全的。人们可以获取您的XAP并对其进行反编译以获取哈希值。
恕我直言,你最好确保你发送的ChannelUri(你的应用程序独有,而不是“存储”在你的XAP中的任何地方)。
在后端,只需确保在尝试向其发送磁贴通知时清除失败的记录。这将取消非电话方输入的任何记录。
最重要的是,您需要使用后端登录基础架构来正确确保只有有效用户才能使用您的服务。