0

curl を使用して外部 Web サイトにログインし、ページをスクレイピングしてデータを抽出する php スクリプトを実行する cron ジョブを作成しています。

今私が持っている質問は、資格情報をデータベースに保存する必要があるということです。これを安全に保存するにはどうすればよいですか。問題は、curl スクリプトがユーザー名とパスワードをクリア テキストで送信する必要があることです。

このサービスは、Mint.com が行っていることと似ています。つまり、ユーザーの資格情報を使用して課金情報を引き出します。

アドバイスをいただければ幸いです。

ありがとう

4

2 に答える 2

0

データは暗号化でき ( openssl_encryptの例を参照)、php スクリプトで必要なときに復号化して、curl の呼び出しに連結された文字列として暗号化せずに渡すことができます。

于 2013-03-05T00:52:26.910 に答える
0

外部システムが (OAuth をサポートする Facebook などとは異なり) 別の (パスワードベースではない) 認証方法を提供しない場合、適切な選択肢はありません。アプリが常にパスワードを要求するかのどちらかです - 少しぎこちなく、自動化と互換性がありません。これが十分でない場合は、DB とアプリが一緒にパスワードを知る必要があるため、両方にアクセスできる人は誰でもパスワードを知ることができます。あなたができる唯一のことは、そのうちの 1 つだけにアクセスするだけでは不十分であることを確認することです: アプリの秘密鍵を作成し、DB 管理者から隠します (ソースに入れます)。これをパスワードを暗号化するための鍵として使用します (秘密鍵の保護を強化するために、この秘密鍵 + いくつかの不変のユーザー固有のデータ [ユーザー ID など] を使用して実際の暗号化鍵を作成することをお勧めします)。そのため、暗号化されたパスワードをデータベースに保存できます。ただし、かなり多くのプライバシーに関する懸念があります。自分のパスワードは決して他人に知られるべきではありませんが、ここではそうではありません。DB が Web サーバー上にある場合、管理者には暗号化されたパスワードと秘密鍵の両方が表示されますが、失敗します。アプリはパスワードに無制限にアクセスできるため、開発者もそれを使用できます (たとえば、スニペットを非表示にしてメールを送信できます)。

于 2013-03-05T01:04:38.807 に答える