我有一個燒瓶應用程式,我在其中登錄到另一個需要登錄資料的服務。所以我在燒瓶應用程式/服務中有我的端點,這個端點使用我目前以明文形式擁有的用戶名和密碼,這意味著
@app.route('/service'), methods = ['GET','POST'])
def access_service(test: str):
username = 'user1'
password = 'passwordincleartext'
req = 'https://anotherservice.com/'
headers = {'Content-type': 'application/json'}
HTTPAUTH = HTTPBasicAuth(username, password)
my_data = '''{"myjsonfield":''' test '''}'''
requests.get(req,headers=headers,data=my_data,auth=HTTPAUTH)
我的問題是我無法在請求中提供用戶名和密碼,因為另一個程式正在使用我的燒瓶應用程式,而該程式是一個外部程式,我無法在 /service 上操作請求。有沒有一種方法可以安全地使用用戶名和密碼,而不是在燒瓶中以明文形式使用,而無需創建資料庫?
uj5u.com熱心網友回復:
您的密碼或任何登錄憑據不應包含在您的代碼中,因為使用 dot.env 之類的東西更可取且更安全,并且您將根據專案所在的位置保留此檔案,而不是以任何方式上傳此檔案,而不是甚至你的 github 倉庫。請檢查以下內容,這是對如何使用 dot.env 的簡單明了的說明
https://dev.to/emma_donery/python-dotenv-keep-your-secrets-safe-4ocn
我建議您創建 2 個檔案,其中一個位于運行代碼的每臺機器的本地,一個將與您的代碼一起推送到 github,其中僅顯示變數名稱,示例如下:
# .env file (local machine specific)
USERNAME=user1
PASSWORD=passwordincleartext
# example.env file (pushed with your code)
USERNAME=<ask-from-maintainer>
PASSWORD=<ask-from-maintainer>
注意:example.env 檔案不會在您的代碼中使用,但如果您在另一臺機器上運行代碼,您將需要它,這樣您只需復制和粘貼檔案,將其重命名為 .env 并替換具有正確憑據的變數值。這樣,當您運行代碼時,它將在新環境中運行而不會出現任何問題
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/459282.html
上一篇:沒有使用flask-cors獲得Access-Control-Allow-Headers和Access-Control-Max-Age
下一篇:args不解包
