2011-02-07 13 views
0

私はパスワードを扱っているので、セキュリティは非常に重要です。PHPファイルの実行中にjavascriptファイルを呼び出す方法。

ここで流れだ...

私は定期的に私がフェッチ午前データとユーザーの画面を更新したいです。

私はjquery関数を使用し、成功すると小さなPHPファイルを呼び出しますが、私はPOST関数でユーザーのパスワードを渡したくありません。

私は、PHP関数内からjquery関数を定期的に呼び出すと、PHPへのpost関数を使ってパスワードを渡す問題がなくなると仮定しています。

理由パスワードを渡しているのは、私がIMAPを使用しており、メールを取得するためにユーザーのパスワードを使用する必要があるということです。

現在のフロー(非セキュア) 1.)jquery AJAXとPOST変数を使用して、javascriptを使用してユーザー名とパスワードをPHP関数に渡します。私の仮定は、これは安全ではないということです。

安全な解決策は何ですか?

+2

なぜPOSTは安全ではないと思いますか?サーバーにデータを取得するには、GETとPOSTの2つの方法があります。 GET - 安全ではありません。 POST - より安全です。セキュリティが* critical *の場合は、SSLでPOSTを使用する必要があります。 –

+2

POSTはGETよりもはるかに安全です。これは、データが標準のアクセスログファイルから保護され、(データが通常のフォーム送信の一部として送信された場合)アドレスバーから(「私はあなたの後ろに立ち、スクリーンを見ます」という攻撃に脆弱です) 。 – Quentin

+0

@David - ナンがURLを見て自分のパスワードを見つけられなかったということは、私がより安全であることを意味しました。 ;) –

答えて

6

私は定期的にPHPの関数内からjqueryの関数を呼び出す場合、

PHPはサーバー上で実行されていること。想定しています出力(JavaScriptを含む)がクライアントに送信されます。 JavaScriptはクライアント上で実行されます。

PHPからJavaScriptコードを呼び出すには、サーバーで使用可能なJavaScriptエンジン(node.jsなど)を使用する必要があります。パスワードは依然としてクライアント上にあるので、これはあなたをうまくやってくれません。

私はjquery関数を使用し、成功するとより小さなPHPファイルを呼び出しますが、私はPOST関数でユーザーのパスワードを渡したくありません。

ある時点でパスワードを渡す必要があります。毎回それを渡すか、セッションに保存してセッショントークンを渡します(データにはまだアクセスできますが、データに直接アクセスすることはありません)。

セキュアなソリューションは何ですか?

(HTTPS経由)暗号化

+0

さて、SSL(https)を使って、$ _SESSION ['pwd']のようなセッショントークンにパスワードを戻したり四番目に渡したり、何か不足していますか?だから、私は$ _SESSION ['pwd']にパスワードを保存してから、それを4番目と4番目に渡すことができますか?これは一般的なセキュリティ基準を満たしていますか? –

+1

@Bob。パスワードを前後に渡す特別な理由はありますか?パスワードを一度確認してから、SESSIONフラグを設定してパスワードが確認され、検証されたと言うことはできませんか? –

+0

はい、PHPでIMAP接続を開くために、私は接続を渡す必要があります。これが私がPHPのjqueryをPHPの代わりに呼び出すことを考えた理由です。このようにすれば、PHPフォームでIMAPに接続するだけで、PHP関数からjqueryを呼び出して画面を更新できます。だから私は新しいPHP関数を呼び出すたびに、私は新しいIMAP接続を開くためにパスワードが必要です - それは私が間違っている可能性があり、私は情報の重要な部分を見逃している、任意の考えが歓迎される。 –

1

あなたは、一般的に無なしではありませんこれは、クライアント上でパスワードを保存して、将来の要求のためにそれを再利用しているように聞こえます。

ユーザーがログインしたら、暗号化された安全な乱数をセッションIDとして使用して固有のCookieを発行します(ほとんどのWebコンテナには、この種の機能が組み込まれています)。定期的なPOSTでCookieを渡します。

+0

もちろん、初期ログインを行うにはSSLを使用します。データが機密である場合は、すべてのもの(静的コンテンツでも)にSSLを使用します。 –

+0

いいえ、保存しません。それは私が使いたい一度だけのことです。私が使用できる堅牢な暗号化/復号化があればいいのに、その価値があるとは思わないので、パスワードを保存することさえできません。パスワードはIMAPのユーザーの電子メールパスワードなので、一般的には格納しないことに非常に躊躇しているので、格納しないことにしました。 - 私はログイン時にパスワードを使用して、サーバからIMAPまたはPOP3メールにアクセスします - それを関数に渡しますが、その1回の使用後には使用しません。 –

+0

サーバーがIMAPリクエストを作成し、結果をブラウザにプロキシしてもらえますか? –

関連する問題