Android 攻击其他人解析服务器?

Android 攻击其他人解析服务器?,android,security,parse-platform,Android,Security,Parse Platform,我读过facebook创建的Parse服务器,但我认为存在严重的安全问题 我可以反编译其他人apk并获得Parsemaster key,appId,然后我可以从我自己的应用程序连接这个人解析服务器,并可以对他的数据做任何我想做的事,这非常危险 甚至我也可以使while(true)循环并向解析服务器插入无限数据 那么如何安全地连接Android Studio中的任何API?您可以将API密钥、密钥或任何其他重要密钥信息存储在.C文件中 为此,您必须使用NDK 您可以按照以下步骤了解如何使用NDK保

我读过facebook创建的Parse服务器,但我认为存在严重的安全问题

我可以反编译其他人
apk
并获得Parse
master key
appId
,然后我可以从我自己的应用程序连接这个人解析服务器,并可以对他的数据做任何我想做的事,这非常危险

甚至我也可以使
while(true)
循环并向解析服务器插入无限数据


那么如何安全地连接Android Studio中的任何API?

您可以将API密钥、密钥或任何其他重要密钥信息存储在.C文件中

为此,您必须使用NDK

您可以按照以下步骤了解如何使用NDK保护您的文件。您还可以在页面底部找到GitHub演示应用程序链接

注意:如果您使用NDK,它将增加您的APK大小


您可以将API密钥、密钥或任何其他重要密钥信息存储在.C文件中

为此,您必须使用NDK

您可以按照以下步骤了解如何使用NDK保护您的文件。您还可以在页面底部找到GitHub演示应用程序链接

注意:如果您使用NDK,它将增加您的APK大小


应用程序ID不是安全机制,不得在公共应用程序中使用主密钥,因为它允许您绕过应用程序的所有安全机制。在应用程序中存储主密钥是一个很大的错误

必须通过类级权限和ACL为解析服务器提供安全性(所有连接都应使用HTTPS和SSL)

根据我的经验,类级别的权限应该很少授予公共访问权限(在Parse Dashboard中创建类时的默认行为)。我只使用主密钥进行测试,并在afterSave触发器和云函数中执行一些查询/节省

我建议您阅读,以便更好地理解如何构建安全的解析API。下面是一个重要的片段,它支持我的答案:

另一方面,主密钥无疑是一种安全机制。使用主密钥可以绕过应用程序的所有安全机制,如类级权限和ACL。拥有主密钥就像拥有对应用程序服务器的root访问权限一样,你应该像保护生产机器的root密码一样保护主密钥


应用程序ID不是安全机制,不得在公共应用程序中使用主密钥,因为它允许您绕过应用程序的所有安全机制。在应用程序中存储主密钥是一个很大的错误

必须通过类级权限和ACL为解析服务器提供安全性(所有连接都应使用HTTPS和SSL)

根据我的经验,类级别的权限应该很少授予公共访问权限(在Parse Dashboard中创建类时的默认行为)。我只使用主密钥进行测试,并在afterSave触发器和云函数中执行一些查询/节省

我建议您阅读,以便更好地理解如何构建安全的解析API。下面是一个重要的片段,它支持我的答案:

另一方面,主密钥无疑是一种安全机制。使用主密钥可以绕过应用程序的所有安全机制,如类级权限和ACL。拥有主密钥就像拥有对应用程序服务器的root访问权限一样,你应该像保护生产机器的root密码一样保护主密钥


你不应该把主密钥放在任何公开的地方。如果它在你的APK中,你正在做一些危险的错误。主密钥只能是服务器上的环境变量

当然,您可以通过反编译获得任何人的应用程序id和客户端密钥(如果他们添加了一个),但基本上任何API都是一样的。您需要使用Parse提供的安全工具,即clp和acl。您的服务器上不应该有任何太敏感的数据。也就是说,您不需要存储用户的实际支付信息,您应该使用支付API,直接从客户机向他们传递所需的任何信息,并存储他们给您的代币。也就是说,使用Stripe,客户机上有一个“公钥”,用于与他们的安全服务器对话、传递信用卡信息和创建卡令牌,然后你将该卡令牌传递回你的服务器,服务器可以使用绝对不应该放在客户机应用程序中的密钥来创建费用和其他东西

CLP和ACL限制对对象的访问。CLP(类级别权限)用于限制整个表。他们有一个很酷的东西叫做指针权限,所以如果一个对象有指向用户的指针,你可以将它设置为用户可以访问他们的对象。您可以限制公共访问,以便只能获取id为的对象,但无法在查询中找到它。您可以完全限制读访问,并且应该限制大多数类的写访问。业务逻辑在服务器上运行,您可以验证会话令牌以确保用户应该访问对象,然后使用主密钥实际执行必要的更新

Parse Server具有保护用户数据所需的所有安全实现。你只需要正确地实现它。如果您不使用CLP和ACL,任何人都可以反编译您的应用程序并获取您的整个数据库


另外,Parse不是由Facebook创建的。它被收购了,大约一年后关闭并开源。

你不应该把主密钥放在任何公开的地方。如果它在你的APK中,你正在做一些危险的错误。主密钥只能是服务器上的环境变量

当然,你可以通过decom获得任何人的应用程序id和客户端密钥(如果他们添加了一个)