首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >分析安全实现(货币)

分析安全实现(货币)
EN

Stack Overflow用户
提问于 2015-01-08 01:23:53
回答 1查看 78关注 0票数 0

我正在开发一个使用虚拟货币的应用程序。我发现了一个问题,假设说,由于api密钥是纯文本的,如果有人决定使用我的密钥创建应用程序,他们可以使用如下所示的简单查询。

代码语言:javascript
运行
复制
ParseQuery<ParseUser> query = ParseUser.getQuery();
query.whereEqualTo("username","Username");
query.findInBackground(new FindCallBack<ParseUser>(){
    @Override
    public void done(List < ParseUser > parseList, ParseException e) {
        for(ParseUser user: parseList){
            user.set("coins",10000);
            user.saveInBackground();
        }
    }
});

此查询允许用户在未登录的情况下更改其货币。如何使用Parse提高虚拟货币应用程序的安全性?"coins“是用户行中的一列,显示他们拥有的货币数量。我有一个基于关系的朋友列表。

EN

回答 1

Stack Overflow用户

发布于 2015-01-08 18:31:44

我推荐阅读SecurityImplementing Business Logic in Cloud Code

客户端和服务器之间的

连接

当应用程序第一次连接到解析时,它使用一个应用程序ID和一个客户端密钥(或REST密钥,或.NET密钥,或JavaScript密钥,取决于您使用的平台)来标识自己。这些都不是秘密,它们本身并不能保证应用程序的安全。这些密钥作为您的应用程序的一部分提供,任何人都可以从他们的设备反编译您的应用程序或代理网络流量,以找到您的客户端密钥。有了JavaScript,这种攻击就更容易了--用户只需在浏览器中“查看源代码”,就可以立即找到您的客户端密钥。

这就是为什么Parse有许多其他安全特性来帮助您保护您的数据。客户端密钥将分发给您的用户,因此普通公众甚至恶意黑客都可以使用客户端密钥执行任何操作。

另一方面,主密钥绝对是一种安全机制。使用主密钥允许您绕过应用程序的所有安全机制,例如类级权限和ACL。拥有主密钥就像拥有对应用服务器的根访问权限一样,您应该像保护生产机器的根密码一样热心地保护您的主密钥。

总体理念是限制客户端的能力(使用客户端密钥),并在Cloud Code中执行任何需要主密钥的敏感操作。在题为在云代码中实现业务逻辑的小节中,您将了解如何最好地利用这一能力。

主要思想是下一步:coins data would be only readable from client side

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27825014

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档