新闻开发人员企业区块链解释事件和会议新闻时事通讯
订阅我们的新闻.
电子邮件地址
我们尊重您的隐私
主页博客区块链开发
如何避免将私钥上载到GitHub:防止公开您的秘密的方法
ConsenSys开发智能合约时,请确保私钥和API秘密的安全2020年10月7日发布于2020年10月7日
库恩·布伦南(Coogan Brennan)和托马斯·海(Thomas Hay)
一年几次, 一种 故事 使 这 回合 一个不幸的以太坊开发人员,在构建一个区块链项目时,意外地将他们的超级秘密助记词(用于生成他们的钱包)上载到其公共GitHub页面。在几秒钟内,他们的钱包被“黑客”并耗尽其资金.
但是,没有什么真正被黑客入侵的:将所有资产转移到“黑客”地址的交易非常合理。这就是网络处理并接受它的原因。网络并不关心谁签署交易或他们的意图是什么,只是其密码学是可靠的。网络假定拥有助记符或生成的私钥的任何人都是相应帐户中资产的合法所有者。.
对于失去钱包控制权的人来说,这真是冰冷的安慰。立即反应是认为他们的钱包已被黑客入侵。这是可以理解的!但是,在您不得不怀疑自己的钱包是否被盗用之前,最好先检查一下您是否会不知不觉地公开您的私人信息.
以下是一些确定的步骤,以避免陷入类似情况。 (要点:这篇文章中描述的技术对于任何项目(无论是否存在区块链)都是非常安全的卫生方法!)
下面,我们概述了两种关于如何不将秘密(API密钥,私钥,种子短语,数据库密码)发布到GitHub存储库的方法:
方法1:使用.gitignore,a.env文件和dotenv(假设我们使用Solidity通用的模式进行开发,并使用 松露 和 MetaMask, 即使已将其概括化)
步骤1:阅读有关的文档.gitignore. 认真阅读文档的整个页面.
A.gitignore文件允许您指定不应跟踪的文件。您将在开发项目所在的目录中创建一个.gitignore文件。在该文件中,您将指定您不想跟踪的文件。该文档将向您说明可以用来不跟踪(或跟踪)文件的各种文本模式。.
这是一个例子:
在第20行中,我们添加了一个.env文件
步骤2:设置一个.env文件来存储您的环境变量
环境变量,最初在Version 7 Unix中实现(1979年由Bell Labs发布), 单击此处以获取手册副本)更改计算系统运行的过程。环境变量已在我们的学生用来在以太坊上构建dApp的所有操作系统(Unix,Linux,MacOS,Windows)中实现。在这种情况下,您的机密将被视为环境变量,并放置在名为.env的文件中.
这是一个.env文件的例子
步骤3:阅读有关的文档 Dotenv. 安装dotenv.
多滕夫 “是一个零依赖模块,将环境变量从a.env文件加载到process.env。” (从…获得 https://www.npmjs.com/package/dotenv 于2020年9月25日)
使用npm install dotenv的nstall dotenv
步骤4:将require(’dotenv’)。config()添加到应用程序的开头。在此文件中使用process.env.
代码示例:application.js
//这是application.js的顶部require(’dotenv’)。config()//这是稍后在文件var PrivateKey = new Buffer(process.env。["PRIVATE_KEY"], "十六进制"))//这里是使用process.env的另一个示例const APIKey = process.env.API_KEY;代码语言:JavaScript(javascript)
步骤5:现在,如果您想发布到现有的GitHub存储库或推送到新的GitHub存储库,则可以这样做。您的秘密不会出现在GitHub存储库中.
来自其他来源的视频教程:Daniel Schiffman,来自 编码火车 在视频中使用天气应用程序提供了视频教程 3.4使用环境变量(dotenv)隐藏API密钥并将代码推送到GitHub.
另一个来源的文字教程:梅森博客(Mason’s Blog)有一个名为 如何在20分钟内部署ERC20令牌. 它描述了在使用Truffle和 Infura.
方法2:在GitHub Actions中使用加密的机密(适合在组织级别熟悉GitHub的人员,并具有必需的权限和GitHub帐户才能将其付诸实践).
方法2使用GitHub专门创建的工具来解决秘密问题,这是部署代码的必要部分,而不是不应向不应该访问它们的个人透露的东西。这种方法与使用GitHub的组织或个人最相关
步骤1:阅读有关的文档 加密的秘密. 认真阅读文档.
加密的机密使您可以在单个GitHub存储库中或跨多个GitHub存储库存储和使用机密。阅读有关如何使用这些文档的文档,因为GitHub在解释如何使用方面做得非常出色 加密的秘密 内 GitHub动作
第2步:执行文档中告诉您的操作。这是非常好的文档.
结论
您现在知道了两种防止机密发布到GitHub的方法。还有其他方法可以做到这一点吗?当然。这是两种对我们有用的方法。我们试图传达的主要观点是,确保您正在考虑秘密可能出现的位置,并确保您采取措施保护自己。在那里安全.
安全性Smart ContractsSolidityNewsletter订阅我们的时事通讯以获取最新的以太坊新闻,企业解决方案,开发人员资源等信息。网络研讨会
如何构建成功的区块链产品
网络研讨会
如何设置和运行以太坊节点
网络研讨会
如何构建自己的以太坊API
网络研讨会
如何创建社交令牌
网络研讨会
在智能合约开发中使用安全工具
网络研讨会