首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何保证智能契约的输入不被操纵?

如何保证智能契约的输入不被操纵?
EN

Stack Overflow用户
提问于 2018-07-30 22:26:14
回答 1查看 45关注 0票数 0

假设我的DApp得到了以下(smart)合同:

代码语言:javascript
复制
module.exports = {
  winner: async function(value) {

    if (value===10) {

        } 
  } 
}

现在,Dapp用户可以执行一些调用契约的操作,value可以是10,也可以不是。Dapp确定value是否等于10。到目前一切尚好。

但是现在看来,任何拥有有效秘密的人(以及一些XAS发送到Dapp的侧链)都可以通过简单的PUT请求调用契约,并将value设置为他们想要的任何东西。

如何确保value的值由Dapp设置,并且不能被操作?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-31 10:47:16

据我所知,Asch DApps运行在快递服务器上,启用了cors中间件,这意味着任何人都可以从任何地方执行请求(GET、POST、PUT等)。

因此,您可以使用如下所示的脚本轻松调用您的合同:

代码语言:javascript
复制
const axios = require('axios');
var fee = '10000000'
var data = {
        secret: "<your secret>",
    fee: fee,
         type: 1001, //the number for contractfile.function
         args: 1000 // a very high score
         }
axios.put('http://<domain>:4096/api/dapps/<dappid>/transactions/unsigned',data)
  .then(function (response) {
    console.log(response);
  })
  .catch(function (error) {
    console.log(error);
  })
  .then(function () {
    // always executed
  });

由于上述原因,无法保证输入中不被操作(从DApp外部发送)。另见:https://github.com/AschPlatform/asch/issues/228

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

https://stackoverflow.com/questions/51603087

复制
相关文章

相似问题

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