0

XMLHttpRequestとbasic-authを使用してアプリケーションインターフェイスにアクセスします。パスワードは一時的なものであり、他のリクエストによって生成されるため、しばらくすると期限切れになります。

しかし、ブラウザ(少なくともFirefox)は古いものを使い続け、失敗してログインポップアップを表示します。X-Requested-Byと間違ったパスワードを持つリクエストに対して403を返すことでポップアップを抑制した場合、mozillaは新しいパスワードを使用しようとはしません(Firebugはリクエストに新しいパスワードを表示し、サーバーは古いものを受け取ります)。

ユーザー名にランダムな「salt」を追加する(そしてサーバー側でそれを取り除く)ことで問題を回避できますが、XMLHttpRequestがキャッシュされる代わりに提供されたパスワードを使用するように強制するより良い方法はありますか?

4

1 に答える 1

0

401応答には、「認証ドメイン」が含まれます。これは、デフォルトでサーバー上のすべてのURLになります(RFC 2617を参照)。ブラウザは、同じドメインからのチャレンジに対して同じクレデンシャルを提供することが期待されています。

すでに期限切れのパスワードを生成しているので、すべてのリクエストに追加する必要があるトークンに単純に変換してみませんか?たとえば、ユーザー名のSHA1ハッシュで、おそらくタイムスタンプでソルトされています。これをサーバー上のキーとして使用して、ユーザーのデータを取得することを想定しています。

于 2009-07-21T15:04:29.770 に答える