`

合约常见漏洞和代码风险

 
阅读更多
常见漏洞
1.在做运算时有可能导致uint256溢出,验证的时候可以通过,实际会导致账户增加大量token,所以最好在运算时使用safemath库
2.重入攻击,利用转账会触发fallback,再次"提现",而提现函数中先触发转账,没有及时更新数据库导致被重入,一般使用标致位或先修改数据库
3.访问权限控制,要注意各修饰符中的逻辑正确性,避免bug导致权限校验失败
4.尽量避免跨合约调用,有一些经常被调用的函数要设置成合约不可调用,如限制msg.sender和tx.origin为同一个地址
5.在使用随机数的时候尽量避免随机数的直接获利,如果一定要使用随机数"开大奖",则最好使用chainlink的vrf随机数,在区块链上真随机和速度无法兼顾
7.短地址攻击,在转账的时候先生成一个00结尾的地址,然后在调用转账的时候,地址不传结尾的00,导致自动补0,而金额也会向前移2位,导致多转了256*n个token

代码风险
1.关键代码前有超长空格 
2.父类和子类有同名变量,这个变量在子类用的其实是自己的,而修饰符的权限校验很有可能用的是父类的变量
3.编译器版本不能太低,0.4是有明显的bug,未初始化的结构体局部变量赋值时,会直接覆盖智能合约定义的前几个变量
4.var默认用是的uint8,在for循环时很有可能溢出,造成某些判定成功
分享到:
评论

相关推荐

    区块链智能合约开发工具的安全性.pptx

    - **代码扫描**:使用工具或人工审查的方式检查代码中常见的漏洞和安全缺陷。 - **安全问题识别**:如整数溢出、竞争条件、枚举攻击等。 - **适用范围**:适用于中小规模的合约,可以有效提升代码质量。 #### 3. ...

    基于模型检测的区块链智能合约公平性形式化验证.pdf

    通过形式化验证方法对这种漏洞进行检查,可以在智能合约设计和部署前发现潜在的风险,从而提高智能合约整体的安全性和可靠性。 文章的作者肖美华教授是华东交通大学软件学院的研究员,其研究方向包括形式化方法和...

    区块链和智能合约测试安全性.pdf

    在区块链技术中,智能合约是自动执行的代码,它们存储在网络的各个节点上,并负责管理和执行合同条款。然而,由于其分布式和不可篡改的特性,智能合约的安全性至关重要。网络安全渗透测试是确保智能合约安全的关键...

    Go-OpenZeppelin一个在Ethereum上构建安全智能合约的框架

    此外,OpenZeppelin的合约通常包含防止重入攻击的保护,这是一种常见的智能合约攻击手段,攻击者可以利用此漏洞无限次调用合约函数,从而窃取资金。 在实际项目中,OpenZeppelin可以与其他工具,如Truffle(一个...

    Three King Doms - 智能合约安全审计报告1

    白盒测试则直接基于源代码,进行脆弱性分析和漏洞挖掘。审计过程中,团队会特别关注如重入漏洞、重放漏洞、短地址漏洞等常见安全问题。 报告内容涵盖项目介绍、审计方法、审计详情、审计结果和声明。项目Three King...

    区块链智能合约的安全性.pptx

    - **手动或工具辅助审查**:审查智能合约代码源码,识别潜在漏洞和编码错误。 - **逻辑检查**:确保合约逻辑按照预期执行,没有意外或不安全的行为。 - **数据分析**:识别潜在的攻击向量和异常情况。 - **动态...

    土狗猎手 V2.0.rar

    这可能包括合约的源代码、执行情况、安全性分析等,帮助用户理解和评估智能合约的性能和风险。然而,由于声明是“仅作为参考”,意味着它提供的信息可能不是权威的,用户可能还需要结合其他来源进行验证。 标签...

    软件工程中的安全漏洞与防范.pptx

    ### 软件工程中的安全漏洞与防范 #### 第一章 简介 随着信息技术的迅速发展,软件已经成为现代社会不可或缺的一部分,...通过对常见漏洞类型的深入理解,采取有效措施进行挖掘与修复,可以显著提高软件系统的安全性。

    物联网应用中访问控制智能合约的形式化验证.zip

    通过形式化验证,可以避免如重入攻击、权限滥用等常见的智能合约漏洞。 5. 工具和技术:形式化验证工具有如Tamarin、Coq、Why3等,它们支持不同的形式逻辑和证明方法。此外,Solidity智能合约的静态分析工具,如...

    信息安全_数据安全_AppSecEU2016-Adam-Muntner-Open-Source-.pdf

    区块链技术,尽管具有去中心化和不可篡改的特性,但其自身也存在安全挑战,如智能合约的漏洞和隐私保护问题。可信编译作为提高软件安全性的手段之一,旨在确保代码在编译过程中不被篡改,从而降低恶意代码注入的风险...

    Fstswap审计报告- CERTIK

    该报告的主要目的是揭示FST SWAP项目源代码及其依赖合约中的问题和漏洞,同时确保代码符合当前最佳实践和行业标准。 **审计概述** 审计过程采用静态分析和手动审查技术,着重于以下几个方面: 1. **攻击向量测试*...

    以太坊Solidity未初始化存储指针安全风险浅析.pdf

    文档提供了相关的参考链接,指出在慢雾社区中曾有人翻译了一篇外文文章,讨论了Solidity的安全问题和常见的防御模式。同时还提到了安比实验室发布的文章《警惕!Solidity缺陷易使合约状态失控》,进一步探讨了...

    Secure_SDLC_Practices_in_Smart_Contracts_Development.pdf

    培训开发者关于智能合约安全的最佳实践和常见陷阱,例如避免使用不安全的库函数,理解状态机的工作原理,以及如何正确处理用户输入。 4. 私钥管理: 私钥的安全存储和管理是智能合约安全的关键。应采用安全的存储...

    PyPI 官网下载 | manticore-0.3.5.dev201228-py3-none-any.whl

    **PyPI官网下载 | manticore-0.3.5.dev201228-py3-none-any.whl** ...在智能合约和网络安全领域,Manticore是一个强大的工具,它为开发者提供了一种高效的方式来验证和调试代码,防止潜在的安全风险。

    不太聪明的合同:Solidity安全问题的示例

    然而,由于其相对年轻和不断发展的特性,Solidity的安全问题时常被开发者忽视,导致潜在的风险。本文将深入探讨"不太聪明的合同:Solidity安全问题的示例",揭示一些常见的安全漏洞,并提供相应的防范措施。 1. ...

    SimpleToken:基于Zeppelin智能合约创建和部署SimpleToken

    Zeppelin库的核心组件之一是OpenZeppelin,这是一个开源的、模块化的智能合约库,包含了许多常见的用例,如代币标准(如ERC20和ERC721)、所有权管理、安全数学操作等。这些预先验证的合约可以减少漏洞的可能性,...

    零时科技:2022年全球Web3行业安全研究报告 (1).pdf

    2022年的报告可能会深入分析过去一年发生的智能合约安全事件,例如DAO攻击或Uniswap的漏洞利用,同时提供最佳实践和审计工具,帮助开发者提高合约安全性。 三、区块链安全 区块链的安全性主要依赖于其共识机制和...

    信息安全_数据安全_认证体制研究.pdf

    通过系统化的方法和工具,如静态代码分析和动态模糊测试,可以找出软件中的漏洞,然后通过补丁更新或代码修复来消除这些弱点。及时的漏洞管理可以降低被攻击的风险,防止APT等恶意行为的渗透。 高级持续性威胁(APT...

    TSRC年度大奖之阳光普照奖.pdf

    6. 风险评估:风险评估是识别和评估潜在安全威胁的过程,目的是确定这些威胁可能对组织造成的影响程度和发生概率。风险评估的实施有助于确定保护资源的优先级和制定安全策略,同时决定需要采取何种控制措施来降低...

    各种安全相关思维导图整理收集。web安全,CTF,业务安全,人工智能,区块链安全.zip

    理解Web安全需要掌握HTTP协议、服务器配置、前端与后端交互原理以及常见漏洞的预防方法。 2. **CTF**:这是一种网络安全竞赛,参赛者通过解决各种安全问题来获取“旗子”或提示,通常涉及逆向工程、密码学、网络...

Global site tag (gtag.js) - Google Analytics