- 浏览: 762824 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (1045)
- 数据结构 (36)
- UML与设计模式 (42)
- c++ (87)
- rust (36)
- Qt (41)
- boost模板元编程 (43)
- Linux (77)
- 汇编 (4)
- 其它 (2)
- 烹饪 (3)
- unix c / socket (73)
- 软件工程 (4)
- shell (53)
- Python (37)
- c++ primer 5th(c++11) (22)
- 数据库/MySQL (27)
- 数据存储 (4)
- lisp (7)
- git (4)
- Utility (3)
- CDN与DNS (54)
- Http (53)
- php (7)
- nginx/lua/openresty (41)
- redis (11)
- TCP/IP (16)
- 互联网 (6)
- kernel (2)
- go (34)
- 区块链 (43)
- 比特股 (13)
- 以太坊 (23)
- 比特币 (23)
- 密码学 (10)
- EOS (53)
- DAG (1)
- docker (1)
- filecoin (7)
- solidity (65)
- ipfs (8)
- 零知识证明 (1)
- openzeppelin (3)
- java (1)
- defi (7)
- Ton (0)
最新评论
常见漏洞
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循环时很有可能溢出,造成某些判定成功
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循环时很有可能溢出,造成某些判定成功
发表评论
-
TypeError:ethers_1.getAddress
2024-04-29 10:45 246package.json 添加:"@nomicfou ... -
solidity
2023-02-25 14:23 12一.solidity 1.EVM 不是基于寄存器的,而是基于栈 ... -
solidity
2023-02-25 14:23 11一.solidity 1.EVM 不是基于寄存器的,而是基于栈 ... -
solidity
2023-02-25 14:23 248一.solidity 1.EVM 不是基于寄存器的,而是基于栈 ... -
Address
2023-02-23 10:54 5// contracts/Box.sol // SPDX ... -
Address
2023-02-23 10:50 211// contracts/Box.sol // SPDX ... -
Beacon
2023-02-20 11:45 223Beacon a.Implementation地址并不存放在P ... -
UUPS
2023-02-17 16:16 255a.Proxy直接把所有的请求都通过delegatecall丢 ... -
Transparent
2023-02-16 15:44 207Transparent: a.如果Proxy合约发现自己被Pr ... -
string转bytes
2023-02-16 11:04 280const data = Buffer.from(''); ... -
hardhat命令
2023-02-13 09:58 3351.前置准备,运行一个新项目 mkdir my-project ... -
multicall
2023-01-31 20:11 200multicall的solidity调用与ethers.js调 ... -
检查是否是721
2023-01-31 15:18 155// SPDX-License-Identifier: M ... -
EVM操作码
2023-01-25 10:33 2962.栈和内存操作码 2.1 POP:取出栈顶元素 2.2 PU ... -
计算合约地址
2023-01-19 11:27 243EVM会根据发送者地址和nonce经过RLP编码后再进行kec ... -
标准修饰符
2023-01-18 17:03 1561.internal:类似c++中的protected,通过J ... -
ABI编码函数
2023-01-17 10:40 3041. abi.encode()returns(bytes):对 ... -
数据位置
2023-01-17 10:24 1771.函数参数包括返回的参数默认是memory 2.局部变量默认 ... -
随机数
2023-01-17 10:06 196https://www.paradigm.xyz/2023/0 ... -
extcodesize
2023-01-16 11:16 286extcodesize取出的byte code长度,若长度大于 ...
相关推荐
- **代码扫描**:使用工具或人工审查的方式检查代码中常见的漏洞和安全缺陷。 - **安全问题识别**:如整数溢出、竞争条件、枚举攻击等。 - **适用范围**:适用于中小规模的合约,可以有效提升代码质量。 #### 3. ...
通过形式化验证方法对这种漏洞进行检查,可以在智能合约设计和部署前发现潜在的风险,从而提高智能合约整体的安全性和可靠性。 文章的作者肖美华教授是华东交通大学软件学院的研究员,其研究方向包括形式化方法和...
在区块链技术中,智能合约是自动执行的代码,它们存储在网络的各个节点上,并负责管理和执行合同条款。然而,由于其分布式和不可篡改的特性,智能合约的安全性至关重要。网络安全渗透测试是确保智能合约安全的关键...
此外,OpenZeppelin的合约通常包含防止重入攻击的保护,这是一种常见的智能合约攻击手段,攻击者可以利用此漏洞无限次调用合约函数,从而窃取资金。 在实际项目中,OpenZeppelin可以与其他工具,如Truffle(一个...
白盒测试则直接基于源代码,进行脆弱性分析和漏洞挖掘。审计过程中,团队会特别关注如重入漏洞、重放漏洞、短地址漏洞等常见安全问题。 报告内容涵盖项目介绍、审计方法、审计详情、审计结果和声明。项目Three King...
- **手动或工具辅助审查**:审查智能合约代码源码,识别潜在漏洞和编码错误。 - **逻辑检查**:确保合约逻辑按照预期执行,没有意外或不安全的行为。 - **数据分析**:识别潜在的攻击向量和异常情况。 - **动态...
这可能包括合约的源代码、执行情况、安全性分析等,帮助用户理解和评估智能合约的性能和风险。然而,由于声明是“仅作为参考”,意味着它提供的信息可能不是权威的,用户可能还需要结合其他来源进行验证。 标签...
### 软件工程中的安全漏洞与防范 #### 第一章 简介 随着信息技术的迅速发展,软件已经成为现代社会不可或缺的一部分,...通过对常见漏洞类型的深入理解,采取有效措施进行挖掘与修复,可以显著提高软件系统的安全性。
通过形式化验证,可以避免如重入攻击、权限滥用等常见的智能合约漏洞。 5. 工具和技术:形式化验证工具有如Tamarin、Coq、Why3等,它们支持不同的形式逻辑和证明方法。此外,Solidity智能合约的静态分析工具,如...
区块链技术,尽管具有去中心化和不可篡改的特性,但其自身也存在安全挑战,如智能合约的漏洞和隐私保护问题。可信编译作为提高软件安全性的手段之一,旨在确保代码在编译过程中不被篡改,从而降低恶意代码注入的风险...
该报告的主要目的是揭示FST SWAP项目源代码及其依赖合约中的问题和漏洞,同时确保代码符合当前最佳实践和行业标准。 **审计概述** 审计过程采用静态分析和手动审查技术,着重于以下几个方面: 1. **攻击向量测试*...
文档提供了相关的参考链接,指出在慢雾社区中曾有人翻译了一篇外文文章,讨论了Solidity的安全问题和常见的防御模式。同时还提到了安比实验室发布的文章《警惕!Solidity缺陷易使合约状态失控》,进一步探讨了...
培训开发者关于智能合约安全的最佳实践和常见陷阱,例如避免使用不安全的库函数,理解状态机的工作原理,以及如何正确处理用户输入。 4. 私钥管理: 私钥的安全存储和管理是智能合约安全的关键。应采用安全的存储...
**PyPI官网下载 | manticore-0.3.5.dev201228-py3-none-any.whl** ...在智能合约和网络安全领域,Manticore是一个强大的工具,它为开发者提供了一种高效的方式来验证和调试代码,防止潜在的安全风险。
然而,由于其相对年轻和不断发展的特性,Solidity的安全问题时常被开发者忽视,导致潜在的风险。本文将深入探讨"不太聪明的合同:Solidity安全问题的示例",揭示一些常见的安全漏洞,并提供相应的防范措施。 1. ...
Zeppelin库的核心组件之一是OpenZeppelin,这是一个开源的、模块化的智能合约库,包含了许多常见的用例,如代币标准(如ERC20和ERC721)、所有权管理、安全数学操作等。这些预先验证的合约可以减少漏洞的可能性,...
2022年的报告可能会深入分析过去一年发生的智能合约安全事件,例如DAO攻击或Uniswap的漏洞利用,同时提供最佳实践和审计工具,帮助开发者提高合约安全性。 三、区块链安全 区块链的安全性主要依赖于其共识机制和...
通过系统化的方法和工具,如静态代码分析和动态模糊测试,可以找出软件中的漏洞,然后通过补丁更新或代码修复来消除这些弱点。及时的漏洞管理可以降低被攻击的风险,防止APT等恶意行为的渗透。 高级持续性威胁(APT...
6. 风险评估:风险评估是识别和评估潜在安全威胁的过程,目的是确定这些威胁可能对组织造成的影响程度和发生概率。风险评估的实施有助于确定保护资源的优先级和制定安全策略,同时决定需要采取何种控制措施来降低...
理解Web安全需要掌握HTTP协议、服务器配置、前端与后端交互原理以及常见漏洞的预防方法。 2. **CTF**:这是一种网络安全竞赛,参赛者通过解决各种安全问题来获取“旗子”或提示,通常涉及逆向工程、密码学、网络...