当前位置: 首页 > news >正文

怀柔手机网站建设做遗嘱的网站有哪些

怀柔手机网站建设,做遗嘱的网站有哪些,自己做的网站怎么上传文章,网站建设详细步骤我们生活在一个应用程序用于做任何事情的世界,无论是股票交易还是预订沙龙,但在幕后,连接是使用秘密完成的。必须适当管理机密,例如数据库密码、API 密钥、令牌等,以避免任何泄露。 管理机密的需求对任何组织都至关重…

我们生活在一个应用程序用于做任何事情的世界,无论是股票交易还是预订沙龙,但在幕后,连接是使用秘密完成的。必须适当管理机密,例如数据库密码、API 密钥、令牌等,以避免任何泄露。

管理机密的需求对任何组织都至关重要。机密可以通过多种方式泄露,包括通过版本控制系统(切勿对代码中的任何机密进行硬编码)、私人消息、电子邮件和其他通信渠道。如果机密泄露,可能会导致信任、信誉甚至业务的丧失。在某些情况下,泄露的机密也可能导致法律诉讼。这就是为什么制定管理机密的计划如此重要的原因。

在本文中,我们将讨论在 Python 中有效管理机密的四种不同方法。

先决条件

在开始之前,请记住以下几点,以避免以后出现任何问题:

  • Python和pip安装在你的机器上。
  • 了解 Python 和 CLI。
  • Python IDE,如 PyCharm 或 VS Code。
  • 对云有基本的了解。

我们将为此设备使用 MacOS。请根据您的操作系统使用这些命令。

在 Python 中管理机密的四种方法

在本节中,我们将讨论在 Python 中管理机密的四种不同方法:

  1. 从文件

使用 .env 文件

该文件是用于在Python中存储环境变量的文件。环境变量是在 Python 代码之外设置的变量,用于配置 Python 代码。该文件通常用于存储密钥和密码。.env

我们将使用该包来访问文件的内容。若要开始,请首先使用以下命令安装包:python-dotenv.env

$ pip install python-dotenv

创建用于测试目的的文件并粘贴以下机密:.env

API_KEY=test-key
API_SECRET=test-secret

当然,此文件不应提交到您的 git 存储库。否则,即使您删除它,它也将被版本控制和可读。

将此行添加到您的文件中:.gitignore

.env

完成后,创建一个文件并粘贴下面提到的代码片段。在此代码中,我们使用函数从文件加载内容:main.pyload_dotenv().env

from dotenv import load_dotenv
import osload_dotenv()api_key = os.getenv("API_KEY")
api_secret = os.getenv("API_SECRET")print("API_KEY: ", api_key)
print("API_SECRET: ", api_secret)

我们还可以使用该函数,它将机密转换为字典。可以使用以下代码片段访问机密:dotenv_values()

from dotenv import dotenv_valuessecrets = dotenv_values(".env")def main():print(secrets["API_KEY"])print(secrets["API_SECRET"])if __name__ == "__main__":main()

处理大型项目时,您可能会发现需要多个文件。例如,您可能有一个用于本地开发环境的文件和一个用于云开发生产环境的文件。如果您有多个文件,以下代码片段可能会有所帮助:.env.env.env.dev.env

from dotenv import dotenv_valuessecrets = dotenv_values(".env")
local_secrets = dotenv_values(".env.dev")def main():print(secrets["API_KEY"])print(local_secrets["API_SECRET"])if __name__ == "__main__":main()

使用 JSON 文件

若要使机密更有条理,还可以使用 JSON 文件。让我们创建一个文件并将以下机密粘贴到其中:secrets.json

{"db": {"host": "localhost","port": 27017,"name": "test"},"server": {"host": "localhost","port": 3000}
}

与上述相同,请勿提交此文件。

现在我们已经准备好了 JSON 文件,让我们编写一个函数来访问文件中的机密:

import jsondef get_value_from_json(json_file, key, sub_key):try:with open(json_file) as f:data = json.load(f)return data[key][sub_key]except Exception as e:print("Error: ", e)print(get_value_from_json("secrets.json", "db", "host")) # prints localhost
  1. 使用环境变量 环境变量是由操作系统或特定用户设置的变量,程序使用它来确定各种设置。我们可以使用这些变量来存储我们的秘密,然后在我们的程序中访问它们。您可以使用以下语法在 macOS 或 Linux 计算机中创建环境变量:
$ export variable_name=value
$ export API_KEY_TEST=dummykey

在 Windows 计算机上,可以使用 GUI 添加环境变量或使用以下命令添加变量:

$ setx [variable_name] “[value]”

可以使用操作系统包访问操作系统环境变量。下面提到的是示例代码:

import os# Get the secret key from the environment
secret_key = os.environ.get('api_key_test')
print(secret_key) // prints dummykey

命令行中的机密也应特别小心地处理。

  1. 使用云机密管理器 大多数云服务提供商都提供内置的密钥管理器,可用于跨云基础架构创建和使用密钥。以下云提供商提供的秘密管理器:
  • AWS 密钥管理器
  • Secret Manager (By Google Cloud)
  • Azure Key Vault

AWS Secrets Manager 在整个行业中广泛使用。让我们编写一个函数来使用 Boto3 在 AWS 中创建和访问密钥:

import boto3def fetch_secret_from_aws(secret_name):try:session = boto3.session.Session()client = session.client(service_name='secretsmanager', region_name='us-east-1')get_secret_value_response = client.get_secret_value(SecretId=secret_name)return get_secret_value_response['SecretString']except Exception as e:print(e)return Nonedef create_secret_in_aws(secret_name, secret_value):try:session = boto3.session.Session()client = session.client(service_name='secretsmanager', region_name='us-east-1')client.create_secret(Name=secret_name, SecretString=secret_value)return Trueexcept Exception as e:print(e)return False
  1. 使用 KMS KMS 是用于管理加密密钥的密钥管理系统。它通常在组织中用于集中管理和保护密钥。KMS 可用于生成、存储和分发密钥。它还可用于吊销密钥和监视密钥使用情况。

KMS 是集中管理应用程序和服务使用的密钥的便捷方法,有助于确保只有授权用户才能访问这些密钥。

Hashicorp Vault 是市场上最好的开源 KMS 之一,它提供了许多功能和优势,包括跨多个环境管理密钥和密钥的能力、强大的安全控制和良好的可扩展性。

让我们编写一个函数来读取机密并将其写入保管库中的特定路径。

注意:请确保您已安装 hvac(适用于 Vault 的 Python 客户端)并设置了 Hashicorp Vault:

import hvacdef read_secret_from_vault(secret_path, token, secret_name):try:client = hvac.Client(url='<http://localhost:8200>',token=token,)read_response = client.secrets.kv.read_secret_version(path=secret_path)return read_response['data']['data'][secret_name]except Exception as e:print(e)return Nonedef write_secret_to_vault(secret_path, token, secret_name, secret_value):try:client = hvac.Client(url='<http://localhost:8200>',token=token,)create_response = client.secrets.kv.v2.create_or_update_secret(path=secret_path,secret={secret_name: secret_value},)return create_responseexcept Exception as e:print(e)return None

总结

管理机密是应用程序开发的重要组成部分。当开发人员将明文机密硬编码到他们的应用程序中时,会产生潜在的安全漏洞。如果发现敏感数据,攻击者可以使用这些机密访问这些数据。

此处建议的方法的另一种替代方法是将机密签入源代码,并与加密的团队共享。如果您学习如何利用Mozilla SOPS等工具,这可能是一个非常灵活的解决方案。

http://www.yayakq.cn/news/65596/

相关文章:

  • 含山县查询建设工程的网站嘉兴网站建设兼职
  • 国外科技网站欣赏手机网站开发+手机模拟器
  • 旅行社做境外购物网站安徽网站建设系统
  • 网站建设的实验结论房产最新消息今天新闻
  • 有经验的大连网站建设seo优化运营
  • 滨州公司网站建设静态网站公用头部 调用标题
  • 整站优化温州怎么做?假快递单制作软件app
  • 网站编辑器是怎么做的google 网站收录
  • 网站维护及更新方案互联网信息投诉平台入口
  • 山西天镇建站哪家好做网站微信朋友圈应该怎么发
  • 如何分析网站优缺点昭通学院教务管理系统
  • 阿里巴巴怎么做企业网站共享会议室租赁平台
  • 某网站优化方案网站建设包含哪些费用
  • php做的购物网站系统下载wordpress 改变网页
  • 易营宝自助建站系统海口模板网站建站
  • 网站设计的图片wordpress未验证邮箱用户
  • 企业网站模板素材网站设计概述
  • html手机网站wordpress标签是干什么的
  • 做楼盘网站百度优化大师
  • 做阿里巴巴网站需要多少钱婚纱摄影网站开发
  • 聊城做网站多少钱刚察县wap网站建设公司
  • 网站怎么做外链接地址天津网站制作培训
  • 网站建设项目内控单ui设计和平面设计哪个好学
  • 关于网站建设的求职意向网站上线盈利
  • 公司网站链接怎么弄wordpress分享有礼
  • vs2017手机网站开发视频制作公司价格表
  • 免费试用网站空间网页制作与网站建设设计价格
  • 如何增加网站的权重设计师常去的网站
  • 广东做网站公司网站代码验证
  • 中介网站建设网站设计哪家公司好