2017-07-20 4 views
0

私は12時間ごとにウェブサイトにログインするPythonスクリプトを書こうとしています。いくつかのローカル資格情報を使用して安全にするPythonスクリプトを作成するにはどうすればよいですか?

私のマシンではホストされず、資格情報を安全にする必要があるという問題があります。大きなものではなく、スクリプトを開いている人がスクリプトでハードコードされているのを見ることができないように十分に安全です。

コンパイル済みのPythonスクリプトを使用するか、または資格情報を持つ暗号化されたファイルをスクリプトに提供する方法はありますか?

+0

このできません。キーと暗号文の両方を持つ分離されたデバイスも、定義上、平文を持っています。あなたが制御し、Pythonスクリプトに代わって要求を行うことができる仲介サービスを導入する。 –

+0

_ **認証** _可能性は私のマシンでホストされていない_サーバーのオファー? – stovfl

答えて

0

資格情報を別のモジュールに取り込み、cythonを使用して資格情報をコンパイルするときに、資格情報を簡単に非表示にすることができます。あなたは、あなたのスクリプトと* .soファイルを他のマシンに送ってください。

cred.pyx:

def mysqlCredentials(): 
    return {'username': 'dbAdmin', 'password': 'mySecret'} 


def someApiCredentials(): 
    return {'username': 'apiTestUser', 'password': '1234'} 

cythonチュートリアルでは、あなたのメインスクリプトで説明したようにあなたはただ、それをコンパイルする必要があります。

import cred 

print (cred.__file__) 
print(cred.mysqlCredentials()) 

戻り値:

/tmp/cred.cpython-36m-x86_64-linux-gnu.so 
{'username': 'dbAdmin', 'password': 'mySecret'} 
+0

**注:**「隠された」クレデンシャルは、生成されたアセンブリ(ここに見られるように)(https://ibb.co/frd6jk)のプレーンなUTF-8でエンコードされたバイナリで表示されます。 –

+0

はい、仲介サービスなしで絶対的なセキュリティはありません。 –

+0

あなたの解決策は "script kiddies"に対してはおそらく適切です。 –

関連する問題