2

携帯電話プロバイダーのWebサイトにログインし、残高を確認し、残高が少なすぎる場合はメールを送信する簡単なPHPスクリプトを作成しました。スクリプトを離れたサーバーに配置しました。

ログインページにパスワードを送信できるようにするには、パスワードをプレーンテキストとしてスクリプトに保存する必要があるようです。しかし、私はこれを行うのに少し気が進まない...

$user="foo";
$password="blah";

より安全な方法はありますか?

4

4 に答える 4

1

難読化する方法はいくつかありますが、プロバイダーのサイトにログインできるようにするには、ファイルをデコードする必要があるため、最終的には、誰かがファイルにアクセスできる場合、プレーンテキストよりも安全な方法はありません。

于 2010-07-28T17:08:18.973 に答える
1

このスクリプトには、プロバイダーに無人でログインする機能があります。

これは、スクリプトを制御するすべての人がこの機能を持ち、スクリプトを実行することで使用できることを意味します。

あなたができることはこれを防ぐことはできません。唯一の解決策は、パスワードが危険にさらされる可能性があるか、自分が管理しているサーバーにのみスクリプトを配置することです。

于 2010-07-28T17:13:31.430 に答える
1

誰かがソースにアクセスできる場合、自動的にログインできるシステムを保護することはできません。それを証明してみましょう。

  1. System Smart何もしなくてもログインできます。
  2. Mr. EvilのソースにアクセスできますSystem Smart
  3. System Smartあなたとしてログインするために何をすべきかを知っています。(最初のポイントから。)
  4. Mr. Evil知っていることをSystems Smart知っています。(2点目から)
  5. Mr. Evilあなたとしてログインするために何をすべきかを知っています。(3点目と4点目から)

結論:このシナリオは安全ではありません。

シナリオが安全であるという仮説から始める場合、これは矛盾による証拠です。

更新:ただし、プレーンテキストよりも難しくしたい場合は、対称鍵を使用できます。

于 2010-07-28T17:32:14.147 に答える
0

やりすぎたい場合は、を使用して暗号化されたmysqlデータベースにパスワードが保存されるように設定し、aes_encrpyt別のサーバーで別のスクリプトを作成して、次の方法でパスワードを要求するパスワードを使用してサーバーを呼び出します。関数で使用するためのソルトを提供しaes_decryptます。

于 2010-07-28T17:16:04.333 に答える