python - 在 Python 脚本中保护密码

标签 python password-protection

我有一个在本地运行的 python 脚本,它有一个嵌入在 os.system 调用中的另一个应用程序的密码。我通过将密码存储在只有我有权访问的数据库中,然后使用 Windows 身份验证连接到数据库来混淆我的密码(因为脚本需要自动化,所以我无法提示输入 PW)。

综上所述,我突然想到,难道不能有人修改我的脚本并打印'pw' var 来获取我的密码吗?我在共享云环境中工作,其他开发人员可以在其中访问我的脚本。有没有办法进一步抽象它,这样别人就不能修改我的脚本并获得密码?

import os
import sqlalchemy as sa
import urllib
import pandas as pd


#Specify the databases and servers used for reading and writing data.
read_server = '~~SERVER_HERE~~'
read_database = '~~DATABASE_HERE~~'

#Establish DB Connection
read_params = urllib.quote_plus("DRIVER={SQL Server};SERVER="+read_server+";DATABASE="+read_database+";TRUSTED_CONNECTION=Yes")
read_engine = sa.create_engine("mssql+pyodbc:///?odbc_connect=%s" % read_params)

#Read PW from DB and set to variable
pw_query = """ SELECT DISTINCT PW FROM ~~TABLENAME_HERE~~ """
pw = pd.read_sql_query(pw_query,con=read_engine,index_col=None)
pw = pw.values.tolist()
pw = str(pw[0])
pw = pw.lstrip("['").rstrip("]'")

#Establish connection to server
os.chdir(r"C:\tabcmd\Command Line Utility")
os.system(r'tabcmd login -s https://~~myURL~~ -u tabadmin -p {mypw}'.format(mypw = str(pw)))
#Make sure you update the below workbook, site names, and destination directory.
os.system(r'tabcmd get "~~FILE_Location~~" -f "~~Destination_DIR~~"')

我使用的是标准 python (Cpython) 和 MS SQL Server。

最佳答案

如果有人可以修改脚本,就没有真正的方法来保护您的密码。

但是,如果共享云环境有不同的用户(即通过 ssh 登录,每个人在服务器上都有自己的用户),那么您可以更改权限以限制对您的代码的访问。如果不是,那么我认为这是不可能的。

关于python - 在 Python 脚本中保护密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36946445/

相关文章:

python - Pandas Rolling_std with Window 使用所有以前的行数

java - 用户验证密码后如何启动java小程序?

password-protection - 软件序列号的实现

javascript - 如何使用密码保护基本 HTML 页面?

python - 如何在 Altair 中创建分组条形图?

python - 在正则表达式中解析 FIX 协议(protocol)?

ssl - 通过安全 URL (SSL) 传递用户名和密码免受中间人攻击是否安全?

c - 通过 c/libcurl 使用有效密码访问受密码保护的新闻网站

Python 对象在 nginx 中的每个请求后都会丢失状态

python - 如何用正则表达式可移植地解析(Unicode)度数符号?