it-swarm-ja.com

cURLで使用する前に、ユーザー名とパスワードの組み合わせを暗号化できますか?

基本認証を使用してWebサービスにアクセスするシェルスクリプトを作成しています。スクリプトを実行するたびにユーザー名とパスワードを入力する必要はありませんが、スクリプト内にプレーンテキストでコンボを入れたくありません。ユーザー名とパスワードは、ネットワーク経由で送信される前にbase64でエンコードされることを知っています。事前にエンコードしてシェルスクリプトに含める方法はありますか?

3
Greg Guida

番号。

技術的には、--headerを使用して生の Authorization ヘッダーを渡すことができます。しかし、その有用性は正確にzeroになります。 Base64は、バイナリデータの破損を回避するために使用される encoding のみですが、何も隠しませんbase64コマンドを使用するなど、スクリプトを読んでいる人なら誰でもすぐに元に戻すことができます。

つまり、これを行っても、パスワードはまだプレーンテキストのままです。

3
user1686

スクリプトにファイルからパスワードを読み取らせることができます。スクリプトがそのファイルへの読み取りアクセス権を付与する効果的なユーザーIDで実行され、他の誰も実行できないようにアクセス許可を設定することができます。

setuid を使用できるようにするには、いくつかのフープをジャンプする必要がある場合があります。これは、スクリプトを読み取って実行できるユーザーがパスワードファイルを読み取れないことを意味します。 Unix.stackexchangeには、この件に関して 良い答え があります。あなたの場合、有効なUIDをrootに昇格させず、この目的のためだけに作成された通常のIDを使用してください(たとえば、スクリプトはwallyとして実行され、wallyはpassword.txt(r --------)を所有します)wallyには特別なものはありません特権ですが、他の人と共有するためにログを書き込んだりファイルを出力したりする必要があるもの)

2
RedGrittyBrick