私が取り組んでいるjavascriptアプリケーションを安全にする方法を研究しています。アプリケーションは、APE(Ajax Push Engine)をバックエンドとして使用するチャット・クライアントです。hmacでjavascriptクライアントをセキュリティで保護
現在、誰でもページにアクセスしてAPEサーバーにGET/POSTリクエストを行うことができます。私は登録ユーザーにチャットクライアントを提供したいだけです。彼らの要求だけが受け入れられるようにしたいと思います。 PHPでユーザ名/パスワード認証を使用して、ユーザにページを提供することができます。しかし、一度彼らはページを持っている、彼らはJavaScriptを変更したり、それが間違った手に落ちるのを止めるのですか?クライアント/サーバ・アプリケーションを保護するためのこの方法は有望に見える
:http://abhinavsingh.com/blog/2009/12/how-to-add-content-verification-using-hmac-in-php/
私はそれが秘密鍵を送信するに依存しないため、これはjavascriptのクライアントのために理想的であると言い、別のソースを持っています。しかし、これはどうやってできますか?上記のチュートリアルによれば、クライアントは秘密鍵を提供する必要があります。これは、javascriptを持っている人なら誰もそのユーザーの秘密鍵を持っているので、あまり安全ではないようです。私が理解から、それはこのような何かを動作します:
- ユーザーログを
- PHPは、ユーザー名とパスワードを検証し、ユーザー名とパスワードを使用して、ユーザの秘密鍵を検索し、JavaScriptの中にそれを挿入
- Javascriptは署名(秘密鍵を使用)とすべてのAPE要求の公開鍵を提供します
- APEは、計算された署名と受信した署名を比較し、要求を処理するかどうかを決定します。
javascriptアプリケーションが秘密鍵を認識する必要がある場合、これはどのように安全ですか?
ありがとうございました!
こんにちはWalderman、ここからの投稿への参照元は、この機会をブログの記事で説明されている作業を説明するようにしましょう。説明されたメソッドは、フロー検証メソッドです。つまり、呼び出されたajax/javascript/apiがアプリケーション制御フローを介して実際に意図されていることを確認したい場合です。クラム情報がサーバー側にないか、タイムアウトや破損のために無効な場合は、単にコールを無視してください....それが作業をクリアすることを願っています。説明されたメソッドは、クライアント側で秘密鍵を送信するように求めません。 –