あるcurl -u username:password http://example.com
安全な?
そうでない場合は、誰かがパスワードを取得する方法について簡単に説明できますか?
ps -ef
が実行中のプロセスを確認するために使用する可能性があるため、このようなコマンドは安全ではありません。あなたの場合はcurl -u username:password http://example.com
、リストに表示され、目的地、ユーザー名とパスワードが危険にさらされています。
あるcurl -u username:password http://example.com
安全な?
そうでない場合は、誰かがパスワードを取得する方法について簡単に説明できますか?
ps -ef
が実行中のプロセスを確認するために使用する可能性があるため、このようなコマンドは安全ではありません。あなたの場合はcurl -u username:password http://example.com
、リストに表示され、目的地、ユーザー名とパスワードが危険にさらされています。
回答:
HTTPプロトコルがパスワードをクリアテキストで送信する基本認証がcURLのデフォルトであるため、安全ではありません。username:password
文字列を指定すると、HTTPヘッダーでBASE64文字列に変換されます。
GET / HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0
Accept: text/html
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
HTTPトラフィックを傍受できる人(プロバイダー、あなたと同じワイヤレスAPにアクセスする人など)は、オンラインのBASE64コンバーターを使用するだけでパスワードを回復できます。
HTTPSプロトコルは、このヘッダーが送信される前に暗号化された接続を確立することで状況を改善し、パスワードの漏洩を防ぎます。ただし、これは、不明な証明書の確認、セキュリティ例外の承認などを求められたときにユーザーが注意を払う場合にのみ適用されます。
同じマシン上の他のユーザーがコマンド引数を利用できる場合があることに注意してください。たとえばps -ef
、/ procファイルシステム、bash履歴、およびターミナルログ(@Lambertのコメントに感謝します)。一部のプラットフォームのcURLはパスワードを非表示にしようとするため、たとえばps -ef
、パスワードの代わりに空白スペースが表示される可能性があります。ただし、cURL faqで説明したように、パスワードをコマンドライン引数として渡すのではなく、cURLに直接パスワードを要求させる方が良いです。
ps
、そのコンテンツが脆弱な上書きが実行される前に起動する期間があります。
安全ではありません。コマンドラインパラメーターはすべてのユーザーに表示されます。
ps
コマンドと/proc
ファイルシステムを通じてすべてのユーザーに表示されます。コマンドがすぐに終了する場合、リスクは軽減されますが、まだ存在しています。
これは、-netrc-fileパラメーターを使用することにより、より安全な方法で実行できます。
例:vi / root / my-file
マシンexample.com
ログインUSERNAME
パスワードPASSWORD
ファイルを保存して閉じます
curl --netrc-file / root / my-file http://example.com
短い答えはノー...しかし....
サーバー側のオプションがない場合は、セキュリティを強化できます。
これらのいずれも、HTTPを使用するブラウザほど安全ではありません。