タグ付けされた質問 「stateless」


2
ステートレス(=セッションレス)認証を使用する場合、CSRFトークンは必要ですか?
アプリケーションがステートレス認証(HMACなどを使用)に依存している場合、CSRF保護を使用する必要がありますか? 例: シングルページアプリがあります(そうでない場合、各リンクにトークンを追加する必要があります:)<a href="...?token=xyz">...</a>。 ユーザーはを使用して自分自身を認証しPOST /authます。認証が成功すると、サーバーはトークンを返します。 トークンは、JavaScriptを介して、単一ページアプリ内の変数に格納されます。 このトークンは、などの制限されたURLへのアクセスに使用されます/admin。 トークンは常にHTTPヘッダー内で送信されます。 HttpセッションもCookieもありません。 私が理解している限り、ブラウザはトークンを保存しないため、クロスサイト攻撃を使用する可能性はありません(?!)。したがって、サーバーにトークンを自動的に送信することはできません(Cookies /セッション)。 何か不足していますか?

2
ステートレス(セッションなし)およびCookieなしの認証を行う方法は?
ボブは何かを達成するためにWebアプリケーションを使用します。そして: 彼のブラウザはダイエット中であるため、クッキーをサポートしていません。 Webアプリケーションは人気があり、特定の瞬間に多くのユーザーに対応します。適切にスケーリングする必要があります。セッションを維持することが同時接続数に制限を課し、そしてもちろん無視できないパフォーマンスのペナルティをもたらす限り、私たちはセッションのないシステムを持ちたいかもしれません:) 重要な注意事項: 我々は持っているトランスポート・セキュリティ(HTTPSとその親友が)。 カーテンの裏側では、Webアプリケーションは現在のユーザーに代わって多くの操作を外部サービスに委任します(これらのシステムはBobをユーザーの1人として認識します)。つまり、Bobの資格情報を転送する必要があります。 では、どのようにしてボブを認証するのですか(すべてのリクエストで)。そのようなことを実装する合理的な方法はどれでしょうか? HTMLフォームの非表示フィールドを介して資格情報でテニスをする... ボールには資格情報(ユーザー名とパスワード)が含まれ、2つのラケットはそれぞれブラウザーとWebアプリケーションです。つまり、Cookieではなくフォームフィールドを介してデータをやり取りする場合があります。各Web要求で、ブラウザーは資格情報を投稿します。ただし、1ページのアプリケーションの場合、これはテニスではなく、ゴムの壁でスカッシュをするように見えます。これは、資格情報を含むWebフォームがWebページの存続期間全体にわたって維持される可能性があるためです。 (サーバーは、資格情報を返さないように構成されます)。 ユーザー名とパスワードをページのコンテキストに保存する-JavaScript変数など。ここでは単一ページが必要、IMHO。 暗号化トークン-ベースの認証。この場合、ログインアクションにより、暗号化されたセキュリティトークン(ユーザー名+パスワード+その他)が生成されます。このトークンはクライアントに返され、今後のリクエストにはトークンが付随します。これは理にかなっていますか?すでにHTTPSを使用しています... その他... 最後の手段:これを行わないで、資格情報をセッションに保存してください!セッションはいいです。クッキーの有無にかかわらず。 以前に説明されたアイデアのいずれかに関して、Web /セキュリティの懸念が思い浮かびますか?例えば、 タイムアウト - 資格情報とともにタイムスタンプを保持する場合があります(タイムスタンプ=ボブが資格情報を入力した時間)。たとえば、NOW-timestamp> thresholdの場合、リクエストを拒否する可能性があります。 クロスサイトスクリプティング保護-どのような違いもないはずですよね? これを読んでくれてありがとう:)

8
ステートレスvsステートフル-いくつかの具体的な情報を使用できます
プログラミングにおけるステートレスおよびステートフルデザインに関する具体的な情報が含まれている記事に興味があります。もっと詳しく知りたいので興味がありますが、良い記事は本当に見つかりません。私は漠然とテーマについて説明しているWeb上の何十もの記事を読んだり、Webサーバーやセッションについて話していたり​​します。 。例:BLクラスは設計上ステートレスであると聞いたことがあります。エンティティクラス(または、Person(id、name、..)のように、少なくとも私がそれらと呼ぶもの)はステートフルなどです。 私はそれを理解できれば、より良いコードを書くことができると信じているので、知っておくことが重要だと思います。 とにかく、本当に短い、これが私が知っていることです 'ステートフル対ステートレスについて: ステートフル(WinFormsのような):後で使用するためにデータを格納しますが、CPUまたはメモリの制限によって制限されるため、アプリケーションのスケーラビリティを制限します ステートレス(ASP.NETと同様-ASPはViewStatesでステートフルにしようとします):アクションが完了すると、データが転送され、インスタンスがスレッドプール(アモルファス)に戻されます。 ご覧のように、それはかなりあいまいで限られた情報(そしてサーバーとの対話にかなり焦点を当てています)なので、もっとおいしい情報を提供していただければ本当にありがたいです:)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.