携帯電話プロバイダーのWebサイトにログインし、残高を確認し、残高が少なすぎる場合はメールを送信する簡単なPHPスクリプトを作成しました。スクリプトを離れたサーバーに配置しました。
ログインページにパスワードを送信できるようにするには、パスワードをプレーンテキストとしてスクリプトに保存する必要があるようです。しかし、私はこれを行うのに少し気が進まない...
$user="foo";
$password="blah";
より安全な方法はありますか?
携帯電話プロバイダーのWebサイトにログインし、残高を確認し、残高が少なすぎる場合はメールを送信する簡単なPHPスクリプトを作成しました。スクリプトを離れたサーバーに配置しました。
ログインページにパスワードを送信できるようにするには、パスワードをプレーンテキストとしてスクリプトに保存する必要があるようです。しかし、私はこれを行うのに少し気が進まない...
$user="foo";
$password="blah";
より安全な方法はありますか?
難読化する方法はいくつかありますが、プロバイダーのサイトにログインできるようにするには、ファイルをデコードする必要があるため、最終的には、誰かがファイルにアクセスできる場合、プレーンテキストよりも安全な方法はありません。
このスクリプトには、プロバイダーに無人でログインする機能があります。
これは、スクリプトを制御するすべての人がこの機能を持ち、スクリプトを実行することで使用できることを意味します。
あなたができることはこれを防ぐことはできません。唯一の解決策は、パスワードが危険にさらされる可能性があるか、自分が管理しているサーバーにのみスクリプトを配置することです。
誰かがソースにアクセスできる場合、自動的にログインできるシステムを保護することはできません。それを証明してみましょう。
System Smart
何もしなくてもログインできます。Mr. Evil
のソースにアクセスできますSystem Smart
。System Smart
あなたとしてログインするために何をすべきかを知っています。(最初のポイントから。)Mr. Evil
知っていることをSystems Smart
知っています。(2点目から)Mr. Evil
あなたとしてログインするために何をすべきかを知っています。(3点目と4点目から)結論:このシナリオは安全ではありません。
シナリオが安全であるという仮説から始める場合、これは矛盾による証拠です。
更新:ただし、プレーンテキストよりも難しくしたい場合は、対称鍵を使用できます。
やりすぎたい場合は、を使用して暗号化されたmysqlデータベースにパスワードが保存されるように設定し、aes_encrpyt
別のサーバーで別のスクリプトを作成して、次の方法でパスワードを要求するパスワードを使用してサーバーを呼び出します。関数で使用するためのソルトを提供しaes_decrypt
ます。