最近安全事件频发,分享一些如何在Sui上构建安全应用的建议

news2024/11/15 17:17:35

在Sui上构建任何应用程序的一个关键部分是防止恶意攻击和威胁行为。对安全性的重视对于减少用户的资产损失,以及降低对开发者和企业的声誉损害至关重要。

Sui安全和密码学社区的成员总结了一些开发者在开发过程中应该注意避免的最佳实践。虽然其中一些经验是单独针对Sui的,但其他许多经验同样适用于所有区块链应用程序。

在开发网、测试网和主网上使用不同的地址

在开发网和测试网上存储的资产没有货币价值,并且这些网络可能会不时地被重置。而在主网上存储的资产具有真实的货币价值,不当的访问可能导致财务损失。建议在开发网/测试网和主网之间使用单独的凭据,以便只有具备合法和必要业务原因的人才能访问主网。在不同网络之间重复使用地址可能导致不必要的广泛访问,并增加错误操作的机率。

不要将硬编码的密钥和助记词存储在公共GitHub存储库中

账户密钥和助记词是控制访问链上资产的重要钱包凭据。尽管将这些凭据与其余应用程序代码一起存储在GitHub存储库中可能很便利,但如果该存储库是公共的,就会允许大家公开访问这些关键材料。GitHub还是一个修订控制的存储库。一旦添加了密钥或助记词,即使这些信息被移除,其他人仍然可以通过浏览存储库的历史记录来访问这些凭据。如果密钥材料是硬编码而不是由代码生成的,这将后患无穷。

在链上和链下的UI代码中添加断言条件

一般来说,可以通过CLI工具或机器人直接从UI之外访问公共链上智能合约功能。如果对于您的应用程序存在重要的限制条件,比如最小或最大转账金额,那么在前端代码和智能合约代码中都要添加对这些条件的检查,否则关键的检查可能会被绕过,从而导致漏洞。

对象ID不适合作为随机性或熵的来源

Sui对象ID是由验证节点在对象创建时分配的。一旦创建,对象ID作为全局唯一标识符会在对象的生命周期内保持不变。这种持久性使得对象ID不能成为随机性和熵的来源。错误地依赖对象ID用于依赖伪随机性或随机性(彩票、模拟、密码学)的应用程序可能会导致低级的漏洞。实际上,如果某些字段在对dryRun RPC进行重复调用时始终呈现相同的字节,则这些字段是不适合作为随机性的来源。Clock()也不是一个好的随机性来源,因为它可能会受到操纵。

确保限制应用程序的VRF或签名的访问

VRF(Verifiable Randomness Function,可验证随机性函数)经常用于确保随机化结果(例如,使用概率选择赢家的彩票函数,或者生成带有不同猜测概率的密码签名函数)。然而,如果VRF直接可以被他人访问,并且未在应用程序内部限制,那么参与者可能受到威胁,即可以在正常应用程序代码路径之外调用VRF。在彩票示例中,威胁参与者可以提前调用VRF以预测彩票的结果从而获得财务利益。在密码签名的情况下,获得签名任意输入的能力在安全上等同于签名密钥本身被泄露。

立即采取行动

这个简短的建议清单将使链上应用程序更强劲、更安全,最重要的是最终用户更加信任开发者。如果您有进一步的问题,并希望得到关于如何更好地保护您的Sui应用程序的帮助,请在开发者Office Hour内注册,进行更深入的技术咨询。


关于 Sui Network

Sui是基于第一原理重新设计和构建而成的L1公有链,旨在为创作者和开发者提供能够承载Web3中下一个十亿用户的开发平台。Sui上的应用基于Move智能合约语言,并具有水平可扩展性,让开发者能够快速且低成本支持广泛的应用开发。获取更多信息:https://linktr.ee/sui_apac

官网|Twitter|Discord|英文电报群|中文电报群

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/821281.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AD21 PCB设计的高级应用(十)Gerber文件转PCB

(十)Gerber文件转PCB Altium Designer 导入 Gerber 并转换成 PCB 的操作步骤如下: (1)打开 Altium Designer 软件,执行菜单栏中“文件”→“新的”→“项目”命令,新建一个 PCB Project,并且新建一个 CAM 文档添加到工程中,如图所示。 (2)Gerber 文件有两…

Web性能测试模型全面解读

前言 性能测试用例主要分为预期目标用户测试、用户并发测试、疲劳强度与大数据量测试、网络性能测试、服务器性能测试五大部分。 具体编写用例时要根据实际情况去进行,遵守低成本、策略为中心,裁减、完善模型,具体化等原则。 Web性能测试模…

视频监控汇聚平台EasyCVR告警消息生成后,合成录像显示不了是什么原因?

智能视频监控平台TSINGSEE青犀视频EasyCVR具备视频融合汇聚能力,作为安防视频监控综合管理平台,它支持多协议接入、多格式视频流分发,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入&…

苍穹外卖项目解读(三) redis、cache缓存解读

前言 HM新出springboot入门项目《苍穹外卖》,笔者打算写一个系列学习笔记,“苍穹外卖项目解读”,内容主要从HM课程,自己实践,以及踩坑填坑出发,以技术,经验为主,记录学习&#xff0…

2023年智能优化算法---能量谷优化器 Energy valley optimizer(EVO),附MATLAB代码和文献...

简介 能量谷优化器(EVO)是一种新的元启发式算法,它的算法是受到了关于稳定性和不同粒子衰变模式的先进物理原理的启发。在文献中,作者与CEC函数中最先进的算法进行了比较,并且证明该算法确实很强劲。算法原理大家请参考文献。 01 结果展示 在…

算法通关村第三关——不简单的数组增删改查

线性表基础 线性表概念 线性表就是具有相同特征数据元素的一个有限序列,其中包含元素的个数称为线性表的长度 线性表类型 从不同的角度看,线性表有不同的分类 语言实现角度 顺序表有两种实现方式 一体式 分离式 一体式结构 一体式:存储信息…

Softing mobiLink——连接现场设备的优选方案

| 用于智能现场设备管理的移动配置工具 从技术人员的角度来看,过程自动化可能会成为一个主要的管理难题,因为其实际上有无限数量的可配置参数及各种通信协议和现场设备接口。由来自多个制造商生产的上千台现场设备组成的现代过程架构,使技术…

Chapter 10: Dictionaries | Python for Everybody 讲义笔记_En

文章目录 Python for Everybody课程简介DictionariesDictionariesDictionary as a set of countersDictionaries and filesLooping and dictionariesAdvanced text parsingDebuggingGlossary Python for Everybody Exploring Data Using Python 3 Dr. Charles R. Severance 课程…

《向量数据库指南》——腾讯云向量数据库Tencent Cloud VectorDB产品特性,架构和应用场景

腾讯云向量数据库(Tencent Cloud VectorDB)是一款全托管的自研企业级分布式数据库服务,专用于存储、检索、分析多维向量数据。该数据库支持多种索引类型和相似度计算方法,单索引支持 10 亿级向量规模,可支持百万级 QPS 及毫秒级查询延迟。腾讯云向量数据库不仅能为大模型提…

Window版本ES(ElasticSearch)的安装,使用,启动

首先我这里是根据小破站狂神说up主,而学习的,下面是笔记文档,文档可能比我更细,但我还是记录一下,嘿嘿嘿 ElasticSearch7.6入门学习笔记-KuangStudy-文章 下面直接开始,首先我们需要下载ELK三个安装包&…

spring boot合并 http请求(前后端实现)

为什么要合并http请求 页面加载时要初始化很多资源信息,会发送好多http请求,根据http的通信握手特点,多个http请求比较浪费资源。进而如果能将多个http请求合并为一个发送给服务器,由服务器获取对应的资源返回给客户端 奇思妙解 …

echarts实现正负轴柱状图

效果: data变量配置: // 正负柱状图zhengfuZhu: {},data1: [],data2: [],data3: [],data4: [],xAxisData1: [],//横轴刻度seriesLabel: { //柱子上的字体show: false,position: outside,color: #BEC3EB,},seriesEmphasis: { //itemStyle: {shadowBlur: …

【福建事业单位-语言理解】01中心理解

【福建事业单位-语言理解】01中心理解 一、中心理解题:关键词1.1 转折关系词总结 1.2因果关系词总结 1.3必要条件关系对策(只有才的变体题型)反面论证(如果等词汇错误做法不好的结果)对策特殊脉络总结 1.4 并列结构总结…

怎么找小红书美食探店博主合作?

在小红书上有许多活跃的美食探店博主,他们通过分享自己的餐厅体验、特色美食以及口味评价,吸引了大量用户的关注。对于想要在小红书上进行美食推广的企业来说,与这些博主合作是一种非常直接的方式,接下来伯乐网络传媒来给大家分享…

【已解决】标签死活不响应单击事件

大家好,我是执念斩长河。今天在公司写代码的时候突然遇到一个问题,这个问题困扰了我不久,就是html中li标签不能响应我的单击事件。最后在仔细分析下,解决了这个问题。 文章目录 1、问题来源2、问题解决方案3、问题解决效果4、总结…

C语言假期作业 DAY 10

一、选择题 1、求函数返回值,传入 -1 ,则在64位机器上函数返回( ) int func(int x) { int count 0; while (x) { count; x x&(x - 1);//与运算 } r eturn count; } A: 死循环 B: 64 C: 32 D: 16 答案解析 正确答案&#xff…

Elasticsearch:如何将整个 Elasticsearch 索引导出到文件 - Python 8.x

在实际的使用中,我们有时希望把 Elasticsearch 的索引保存到 JSON 文件中。在之前,我写了一篇管如何备份 Elasticsearch 索引的文章 “Elasticsearch:索引备份及恢复”。在今天,我们使用一种 Python 的方法来做进一步的探讨。你可…

SpringBoot复习:(12)SpringApplicationRunListener和 SpringApplicationRunListeners

SpringApplicationRunListener接口定义如下: public interface SpringApplicationRunListener {default void starting() {}default void environmentPrepared(ConfigurableEnvironment environment) {}default void contextPrepared(ConfigurableApplicationConte…

2023年【零声教育】13代C/C++Linux服务器开发高级架构师课程体系分析

对于零声教育的C/CLinux服务器高级架构师的课程到2022目前已经迭代到13代了,像之前小编也总结过,但是课程每期都有做一定的更新,也是为了更好的完善课程跟上目前互联网大厂的岗位技术需求,之前课程里面也包含了一些小的分支&#…

【连通块染色,双指针维护区间map,整除分块】CF616 CDE

Dashboard - Educational Codeforces Round 5 - Codeforces C 题意: 思路: 经典的给格子染色,直接dfs染色就行,不要用并查集,虽然也能做但是不好写 然后对于每一个*,把周围的格子的颜色扔到set里去重统…