У меня есть сценарий python, который я запускаю локально, у которого есть пароль для другого приложения, встроенного в вызов os.system. Я запутал свой пароль, сохранив его в БД, к которому только я имею доступ, а затем используя windows auth для подключения к БД (поскольку сценарий должен быть автоматизирован, я не могу запросить PW).Защитить пароль в скрипте Python
С учетом сказанного мне пришло в голову, не мог ли кто-то просто изменить мой сценарий и распечатать 'pw' var, чтобы получить мой пароль? Я работаю в облачной среде, где другие разработчики будут иметь доступ к моему сценарию. Есть ли способ отвлечь его дальше, чтобы кто-то не мог просто изменить мой скрипт и получить pw?
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.
хороший вызов, я думаю, что защита доступа к скрипту является ключом. Есть ли способ защитить его даже от администратора сервера, который управляет нашими учетными записями Windows? –
@Rick Вы должны иметь возможность, потому что администратор сервера не должен иметь доступ к вашим данным - они могут управлять учетными записями, но не вашими данными. Однако стоит сначала спросить. К сожалению, я никогда не работал с сервером Windows, поэтому мне неизвестны подробности. –