首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Solidity web3 JS修复byPass黑客?

Solidity web3 JS修复byPass黑客?
EN

Stack Overflow用户
提问于 2021-09-20 22:18:05
回答 1查看 88关注 0票数 0

我有一些关于如何使用web3控制de msg.sender的经验。

例如,我在solidity中有这个函数:其中msg.sender是costructor中使用的所有者。例如为0x9;

代码语言:javascript
复制
function NoPass() external view returns(string memory){
  require(msg.sender == owner, "NO ERES EL PROPIETARIO");
  return "HACKEADO";}

然后从JS调用此函数,如下所示:

代码语言:javascript
复制
contract.methods.NoPass().call({from:"0x9"}).then(res=>{
     console.log(res);})

我可以调用这个函数并跳过require,因为我的调用与owner写的是相同的帐户。我怎么才能修复它?因为我将帐户保存在一个值中,所以黑客可以修改这个帐户值并跳过要求。

谢谢,我是个发送函数的新手,它只是调用函数,但是这是正常的吗?

EN

回答 1

Stack Overflow用户

发布于 2021-09-21 07:52:11

call()函数读取区块链状态,并且不更改区块链的状态。send()创建事务并可以更改区块链状态。访问控制通常仅在可更改区块链状态的功能中实施。此外,使用OpenZeppelin Ownable.sol进行访问控制也很好。

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

https://stackoverflow.com/questions/69261417

复制
相关文章

相似问题

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