私が取り組んでいる JavaScript アプリケーションを保護する方法を研究しています。このアプリケーションは、バックエンドとして APE (Ajax Push Engine) を使用するチャット クライアントです。
現在、誰でもページにアクセスして 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アプリケーションが秘密鍵を認識する必要がある場合、これはどのように安全ですか?
助けてくれてありがとう!