首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏walterlv - 吕毅的博客

    异步任务中的重新进入(Reentrancy

    异步任务中的重新进入(Reentrancy) 2017-12-05 14:10 一个按钮,点击执行一个任务。 ---- 重新进入(Reentrancy) private void Button_Click(object sender, RoutedEventArgs e) { DoSomething() 在异步任务结束之前重新进入此异步任务的过程,叫做重新进入(Reentrancy)。 重新进入的五种方式 微软在 Handling Reentrancy in Async Apps (C#) 一文中给出了重新进入的三种方式: 禁用“开始”按钮 取消和重启操作 运行多个操作并将输出排入队列 ---- 参考资料 Handling Reentrancy in Async Apps (C#) - Microsoft Docs 处理异步应用中的重新进入 (C#) - Microsoft Docs

    94110发布于 2018-09-18
  • 来自专栏FreeBuf

    Caracal:一款功能强大的Starknet智能合约静态分析工具

    controlled-library-call 高 1 & 2 2 unchecked-l1-handler-from 高 1 & 2 3 felt252-unsafe-arithmetic 中 1 & 2 4 reentrancy 中 1 & 2 5 read-only-reentrancy 中 1 & 2 6 unused-events 中 1 & 2 7 unused-return 中 1 & 2 8 unenforced-view 中 1 9 unused-arguments 低 1 & 2 10 reentrancy-benign 低 1 & 2 11 reentrancy-events 低 1 & 2 12 dead-code

    45510编辑于 2023-12-12
  • 来自专栏AI SPPECH

    032_重入攻击防御全解:从ReentrancyGuard到2025年高级防护模式,构建智能合约的安全边界

    一、重入攻击原理与威胁概述 1.1 重入攻击的基本原理 重入攻击(Reentrancy Attack)是智能合约中最危险的漏洞之一,其核心原理是利用合约在完成状态更新前进行外部调用的时间窗口发起攻击。 1.3 重入攻击的类型与变种 随着合约开发技术的进步,重入攻击也演变出多种类型和变种: 单函数重入(Single-function Reentrancy): 最简单的形式,攻击者重复调用同一个函数 通常发生在提款和转账函数中 跨函数重入(Cross-function Reentrancy): 攻击者利用一个函数的外部调用去重入另一个函数 更难检测,因为漏洞涉及多个函数间的交互 跨合约重入 (Cross-contract Reentrancy): 攻击者利用多个相互调用的合约链进行攻击 常见于复杂的DeFi协议组合使用场景 闪电贷重入(Flash Loan Reentrancy): 结合闪电贷放大攻击效果 可以在单个交易中提取大量资金 预言机重入(Oracle Reentrancy): 针对依赖预言机的合约,通过操纵预言机更新过程进行攻击 影响价格相关的金融合约 二、重入攻击防御基础机制

    54210编辑于 2025-11-16
  • 来自专栏Ethereum

    《纸上谈兵·solidity》第 5 课:依赖与外部调用 —— 合约交互的风险与防护

    doSomething()"));二、外部调用的典型风险风险类型 描述 重入攻击 Reentrancy reentryCount++; if (reentryCount < 3) { vault.withdraw(); } }}重入攻击测试:test/Reentrancy.t.sol attacker).balance, 1 ether, "Attacker profit expected"); }}执行结果: $ forge test --match-path test/Reentrancy.t.sol -vvv[⠊] Compiling...No files changed, compilation skippedRan 1 test for test/Reentrancy.t.sol:ReentrancyTest 0 tests passed, 1 failed, 0 skipped (1 total tests)Failing tests:Encountered 1 failing test in test/Reentrancy.t.sol

    59320编辑于 2025-08-01
  • 来自专栏深入浅出区块链技术

    二层网络 Optimism 智能合约要点解析

    _data ); // Send calldata into L2 // slither-disable-next-line reentrancy-events sendCrossDomainMessage(l2TokenBridge, _l2Gas, message); // slither-disable-next-line reentrancy-events IL2StandardERC20(_l2Token).mint(_to, _amount); // slither-disable-next-line reentrancy-events , _timestamp, _blockNumber ); // slither-disable-next-line reentrancy-no-eth , reentrancy-events batchesRef.push(batchHeaderHash, latestBatchContext); } } batchesRef是一个用于数据存储的辅助合约

    1.1K10编辑于 2022-11-07
  • 来自专栏FreeBuf

    SherlockChain:基于高级AI实现的智能合约安全分析框架

    filter-check-suicidal] [--filter-check-upgradeable] [--filter-check-erc20] [--filter-check-erc721] [--filter-check-reentrancy ] [--check-all] [--check-suicidal] [--check-upgradeable] [--check-erc20] [--check-erc721] [--check-reentrancy report-check-suicidal] [--report-check-upgradeable] [--report-check-erc20] [--report-check-erc721] [--report-check-reentrancy report-all] [--report-suicidal] [--report-upgradeable] [--report-erc20] [--report-erc721] [--report-reentrancy

    66710编辑于 2024-06-28
  • 来自专栏网络安全攻防

    重入攻击概述

    * * TIP: If you would like to learn more about reentrancy and alternative ways * to protect against it, check out our blog post * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After

    41130发布于 2021-07-21
  • 来自专栏ImportSource

    并发编程-加锁机制

    Reentrancy? 重入 当一个线程去请求一个被其他线程hold住的锁,那么这个请求将会block,将会阻塞。 Reentrancy意味着这个锁的获取是面向线程的,而不是基于每次调用的。Reentrancy(重入)有一种实现方式就是,为每个锁关联一个计数器和一个所有者线程。 Reentrancy(重入)机制进一步封装了锁的内部行为,这样让我们开发面向对象的并发代码的时候就更容易了。

    1.4K80发布于 2018-04-03
  • 来自专栏网络安全攻防

    重入攻击概述

    * * TIP: If you would like to learn more about reentrancy and alternative ways * to protect against it, check out our blog post * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After

    1.3K00发布于 2021-03-21
  • 来自专栏编程心路

    并发编程-synchronized关键字大总结

    method2"); } public static void main(String[] args) throws InterruptedException { Reentrancy reentrancy = new Reentrancy(); // 方法体执行对象 Runnable run = ()-> { reentrancy.method1

    52440发布于 2019-02-26
  • DAPP外包开发的安全性

    以下是一些常见的智能合约安全问题和防范措施:重入攻击 (Reentrancy Attack): 这是最常见的智能合约漏洞之一。攻击者利用合约中的回调函数,在合约完成操作之前重复调用自身,从而窃取资金。 使用互斥锁 (Mutex) 或重入保护库 (Reentrancy Guard) 来防止重复调用。 使用 Pull over Push 模式,即让用户主动提取资金,而不是合约主动发送资金。

    39710编辑于 2024-12-26
  • 来自专栏媒矿工厂

    使用Swift actors保护并发应用中的可变状态

    Dario接下来介绍了Actor reentrancy。 即当Actor进入await状态,有其他Actor进行操作时,Actor reentrancy可以防止死锁,并保证后续的运行内容,但是需要用户自己考虑在await状态时,可能发生的情况并进行排除和避免。

    1.9K30发布于 2021-07-29
  • 来自专栏Ethereum

    《纸上谈兵·solidity》第 19 课:安全专题(一)—— 常见攻击手法与防御

    重入攻击(Reentrancy)历史案例2016 年 The DAO 攻击:利用重入漏洞,攻击者反复提取资金,造成 6000 万美元 损失,直接导致以太坊社区分叉出 ETH 与 ETC。 总结Reentrancy:调用外部合约前要更新状态,必要时使用 ReentrancyGuard。Front-running:交易顺序是透明的,敏感逻辑要用 Commit-Reveal 或批量结算。

    46110编辑于 2025-08-25
  • 来自专栏区块链开发

    DApp开发的安全设计

    以下是一些常见的智能合约安全问题和防范措施:重入攻击 (Reentrancy Attack): 这是最常见的智能合约漏洞之一。攻击者利用合约中的外部调用,在合约完成操作之前重复调用自身,从而窃取资金。 使用互斥锁(Mutex)或重入保护库(Reentrancy Guard):防止函数在执行过程中被重复调用。

    40110编辑于 2024-12-27
  • 来自专栏深入浅出区块链技术

    如何防止以太坊智能合约攻击-源码分析

    重入(reentrancy)这个词就来自外部恶意合约在有漏洞的合约调用函数,并且重新执行代码路径。 balances[msg.sender] -= _weiToWithdraw; lastWithdrawTime[msg.sender] = now; // set the reEntrancy

    1K40编辑于 2022-04-08
  • 来自专栏程序员互动联盟

    程序员必看的十部电影

    9.源代码(2011) 概念:多线程重进入(Reentrancy)机制 我很好奇这些源代码是在什么上运行的。如果关闭电源,那另外一个世界就会消失? ? 10.恐怖游轮(2009) 概念:死循环 ?

    2.1K50发布于 2018-03-13
  • 来自专栏AI SPPECH

    046_DeFi协议安全审计与漏洞防范:从形式化验证到实战案例分析

    第二章:智能合约常见漏洞分析 2.1 重入攻击(Reentrancy) 重入攻击是DeFi协议中最常见且危害最大的漏洞之一。 // 验证总供应量保持不变 assert totalSupply() == totalSupplyBefore, "转账应保持总供应量不变"; } // 验证没有重入攻击 rule no_reentrancy_in_withdraw analyze contract.sol --solc-json mythril.config.json # 检查特定漏洞(如重入) myth analyze contract.sol --detect reentrancy solc_version": "0.8.17", "solc_args": "--optimize", "execution_timeout": 300, "modules": { "reentrancy # 启用特定检测器 slither contract.sol --detect reentrancy-eth,reentrancy-no-eth # 生成JSON报告 slither contract.sol

    52610编辑于 2025-11-16
  • 来自专栏林德熙的博客

    dotnet 读 WPF 源代码笔记 插入触摸设备的初始化获取设备信息

    tabletInfo.DeviceType = (TabletDeviceType)(deviceType -1); // // REENTRANCY NOTE: Let a PenThread do this work to avoid reentrancy! from the UI thread, // COM will set up message pumping which will cause reentrancy

    89010发布于 2021-05-27
  • 来自专栏区块链入门

    【链安】竞态条件漏洞分析及详细修复建议

    重入漏洞(Reentrancy) • 问题描述 合约通常用来处理 Ether,因此通常会将 Ether 发送给各种外部用户地址。调用外部合约或将以太网发送到地址的操作需要合约提交外部调用。 详细分析 1、假设普通用户向原合约(Reentrancy.sol)存入15 ether; 2、攻击者部署攻击合约(POC.sol),并调用setInstance()指向原合约部署地址; 3、攻击者调用攻击合约的

    1.4K20发布于 2018-08-10
  • 来自专栏区块链开发

    区块链智能合约开发需要注意的问题

    安全性:重入攻击(Reentrancy Attack): 这是最常见的智能合约漏洞之一。攻击者利用合约中的回调用,在合约更新状态之前重复调用自身函数,从而窃取资金。

    48700编辑于 2025-01-20
领券