Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python通过POST API请求更安全地存储密码_Python_Api_Security_Passwords_Python Requests - Fatal编程技术网

Python通过POST API请求更安全地存储密码

Python通过POST API请求更安全地存储密码,python,api,security,passwords,python-requests,Python,Api,Security,Passwords,Python Requests,我有一个脚本,它利用请求模块创建POST请求 密码以明文形式存储在脚本中 我担心这显然是不安全的,但我不知道如何使它更安全 关于避免在脚本中以纯文本形式存储密码以发出请求的步骤,有什么建议吗 #Set request parameters url = 'https://apiexample.com/test' #ISSUE: password is plain text user = 'api_example' pwd = 'plaintextnopes' #Set proper header

我有一个脚本,它利用请求模块创建POST请求

密码以明文形式存储在脚本中

我担心这显然是不安全的,但我不知道如何使它更安全

关于避免在脚本中以纯文本形式存储密码以发出请求的步骤,有什么建议吗

#Set request parameters
url = 'https://apiexample.com/test'
#ISSUE: password is plain text
user = 'api_example'
pwd = 'plaintextnopes'

#Set proper headers
headers = {"Content-Type":"application/json","Accept":"application/json"}

#Build HTTP Request
response = requests.post(url=url, auth=(user, pwd), headers=headers ,data=j)

#Check for HTTP codes other than 200
if response.status_code != 200:
        print('Status:', response.status_code, 'Headers:', response.headers, 'Response Text', response.text, 'Error Response:',response.json())
        exit()
编辑:
帐户是有权将记录写入数据库的系统用户,这是静态的,不会更改。

假设此脚本以交互方式运行,您可以通过调用
input()
raw\u input()
(取决于您使用的Python版本)要求用户在键盘上键入密码

您可以将密码存储在单独的文件中,该文件并不完全安全,但允许您在不共享密码的情况下共享脚本


您可以获取用户名+密码的base64编码值,并将其直接包含在标题中,而不是通过
auth=
参数传递它们。然而,这只会保护密码不受偶然窥探者的攻击;根据编码值重建用户名和密码很容易。

假设此脚本以交互方式运行,您可以通过调用
input()
raw\u input()
(取决于您使用的Python版本)要求用户在键盘上键入密码

您可以将密码存储在单独的文件中,该文件并不完全安全,但允许您在不共享密码的情况下共享脚本


您可以获取用户名+密码的base64编码值,并将其直接包含在标题中,而不是通过
auth=
参数传递它们。然而,这只会保护密码不受偶然窥探者的攻击;从编码值很容易重建用户名和密码。

帐户是有权将记录写入数据库的系统用户,这是静态的,不会更改。我想我至少应该将它存储在一个单独的文件中,并且头文件中包含的base64编码值可能至少更安全一些。为了在报头中传递base64编码的值而不是auth参数,语法是什么样的?谢谢你的建议
headers={…,'Basic:%s'%b64encode('%s:%s%%(用户,pwd))}
帐户是有权将记录写入数据库的系统用户,这是静态的,不会更改。我想我至少应该将它存储在一个单独的文件中,并且头文件中包含的base64编码值可能至少更安全一些。为了在报头中传递base64编码的值而不是auth参数,语法是什么样的?谢谢你的建议<代码>头={…,'Basic:%s'%b64encode('%s:%s%%(用户,pwd))}