問題タブ [forgot-password]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
security - 一時パスワードを電子メールで送信してパスワードをリセットする
私の会社のグループは、アプリケーション用のシングル サインオン REST API を実装しています。この認証サービスには、パスワードのリセット機能があります。アプリケーションはユーザー名をリセット関数に送信します。そのユーザー名が電子メール アドレスに関連付けられている場合、電子メールがそのアドレスに一時パスワードとともに送信されます。
もう 1 つのアプローチは、ユーザーが新しいパスワードを入力するためのページを表示する安全な一時的なリンクを電子メールで送信するサイトのようです。このページは短期間のみ存在します。
電子メールは安全なプロトコルではないことを私は知っています。そのため、人々はトラフィックを傍受して、一時パスワードまたは一時リンクのいずれかを復元できます。
ある方法を他の方法より優先する重要なセキュリティ上の理由はありますか? これを行う別のより安全な方法はありますか?
asp.net - パスワードのリセットページでのユーザー認証
Web サイトのパスワード リセット ページを作成しています。ここに私の考えがあります:
を。ユーザーは、ログイン ページで「パスワードを忘れた」リンクをクリックします。
b. パスワードリセットページにリダイレクト
c. ユーザーは自分のメールアドレスを入力してください
d. パスワードをリセットするためのリンクが記載された電子メール メッセージが電子メール アドレスに送信されます。リンクには ?code="xxxx" のようなセキュリティ コードが含まれています。
e. ユーザーはリンクを開いて新しいパスワードを入力し、送信ボタンをクリックします。
f. マイページでユーザーのパスワードを変更します。
私の質問はステップfです。ステップ e で、ユーザーがリンクを開いたときに、セキュリティ コードを確認し、「新しいパスワード」フィールドと「パスワードの確認」フィールドをユーザーに表示することができました。しかし、ユーザーが送信ボタンをクリックしたとき、これがハッカーではなくユーザーによって送信された実際の要求であることをどのように知ることができますか? 間違っているかもしれませんが、検証フィールドがないため、ハッカーはそのようなフィールド データを簡単にシミュレートできると思います。
ステップ f で要求を検証するために考えられるアイデアがいくつかありますが、それらが正しいかどうかはわかりません。1. 手順 e で暗号化された Cookie を追加し、手順 f で確認しますか? 2. 手順 e でセッション変数を使用し、手順 f で確認しますか? 3. 手順 e で隠しフィールドを追加し、手順 f で確認しますか?
それらのアプローチは大丈夫ですか?どちらが優れているか、または他に優れているものはありますか?
前もって感謝します。
asp.net - ASP.NET パスワードのリセット - セキュリティの問題?
この問題に関するさまざまな質問を見てきましたが、まだ尋ねられていない質問がいくつかあります。ユーザーがパスワードを忘れた場合、メール アドレスだけでパスワードをリセットできるようにしたいと思います (つまり、セキュリティの質問/回答はありません)。パスワードはソルトハッシュとして保存されるため、復元することはできません。代わりに、ユーザーがリセットを要求したことを確認した後、新しいパスワードを入力してもらいたいだけです。
言及されている一般的な方法は、単純に次のとおりです。
1) ランダムな Guid/暗号的に強力な乱数を作成する
2) 乱数を含む一意の URL をユーザーの電子メール アドレスに送信します。
3) 確認されると、ユーザーはパスワードの変更を求められます
しかし、これはMITM
攻撃にさらされていませんか? 一時的なパスワードをインターネット経由で電子メールに送信することが安全でない場合、それを行うことと、攻撃者がナビゲートできる一意の URL を単に送信することの違いは何ですか? このシステムをより安全にする重要なステップをどこかで見逃していませんか (または、パスワードをリセットするためのより良い方法はありますか)?
ありがとう
django - Django 管理サイトにパスワードを忘れた場合の機能を追加する
パスワードを忘れた場合の機能を Django 管理サイトに追加するには? メール/秘密の質問のオプションはありますか? 利用可能なプラグイン/拡張機能はありますか?
asp.net - リセット・アプリケーション用のユーザーOracleパスワードの検証
これはプログラミングと sysadmin の組み合わせですが、プログラミングの問題であると判断しました。
現在、Oracle ユーザー アカウント (C#) を管理するためのパスワード管理 Web アプリケーションの構築に取り組んでいます。
このスコープでは、ユーザーが新しいパスワードを設定できるようになる前に、ユーザーの Oracle ユーザー名とパスワードの検証を求めます。ユーザー パスワードのテーブルを作成せずに (ハッシュ化されているかどうかにかかわらず、これはセキュリティ リスクです)、古いユーザー パスワードを確認するにはどうすればよいですか?
私の現在の解決策は、ユーザーが指定したユーザー名/パスワードを使用してデータベースに接続しようとすることです。これを何度も試みると、Oracle側でユーザーがロックアウトされるため、ブルートフォースはあまり妥当ではありません. 私が見逃している他のセキュリティリスクはありますか、それともこれを処理するためのより良い方法はありますか?
AD をプライマリ認証として使用しますが、AD アカウントは Oracle アカウントに関連付けられていないため、予備的なチェックにすぎません。
申請の流れ(これが役立つ場合):
- AD 適切なドメインの確認 (イントラネット)
- ユーザーがOracleのユーザー名/パスワードを入力
- 古いパスワード、新しいパスワード + 確認を入力
- 正しい場合はパスワードをリセットします
database - データベース レコード内の変更パスワードの一意のコードを「期限切れ」にするにはどうすればよいですか?
Java Web アプリケーションにパスワードを忘れた機能を実装したいと考えています。次のように実装したいと思います。
- ユーザーは自分のアカウントのメール アドレスを入力し、[パスワードを忘れた] ボタンを押します
- アプリは文字と数字の一意のコードを生成し、それをパラメーターとして含むリンクをユーザーの電子メール アドレスに送信します。
- ユーザーがリンクをクリックすると、新しいパスワードを入力できるフォームが表示されます
私がやりたいことは、ユーザーがパスワードを忘れたボタンを押してから 1 時間後にリンク (つまり、一意のコード) が「期限切れ」になるようにすることです。これにより、攻撃者がメール アカウントにアクセスした場合、アクセスを取得しない限り、このリンクは機能しません。その最初の1時間で。
データベースを「期限切れ」にする方法や、ユーザーのアカウント レコードのコードをクリアする方法がわかりません。どうすればこれを実装できますか?
doctrine - sfDoctrineGuard の質問
「パスワードを忘れた」機能を実行しようとしています。私の問題は、Doctrine クエリを実行してパスワードを電子メールに送信しようとすると、暗号化されたパスワードが取得されることです。DoctrineGuard にはこの機能がなく、登録とログインの機能しかない Web をいくつか見ています。
本当ですか?
この場合、パスワードを記憶する機能をどのように行うことができますか?
ありがとう
passwords - パスワード回復のベストプラクティスを実装する
Webアプリケーションにパスワード回復を実装したい。
秘密の質問は使わないようにしたいと思います。
パスワードをメールで送ることもできますが、危険だと思います。
新しい一時的なランダムパスワードを生成して電子メールで送信できるかもしれませんが、上記の点と同じくらい危険だと思います。
たとえばhttp://example.com/token=xxxxのように電子メールでURLを送信できますか。 ここで、xxxxはユーザーに関連付けられたランダムトークンです。したがって、ユーザーがそのURLに移動すると、パスワードをリセットできます。
security - データベーステーブルなしで電子メールでパスワードをリセット
メールでユーザーのパスワードをリセットするための通常のフローは次のとおりです。
- ランダムな文字列を生成し、データベーステーブルに保存します
- ユーザーへのメール文字列
- ユーザーが文字列を含むリンクをクリックする
- 文字列はデータベースに対して検証されます。一致する場合、ユーザーのpwはリセットされます
ただし、テーブルを維持したり、古い文字列を期限切れにしたりすることは、少し面倒なことのように思えます。この代替アプローチに明らかな欠陥はありますか?
- ユーザーの既存のパスワードのMD5ハッシュを生成します
- ハッシュ文字列をユーザーにメールで送信
- ユーザーが文字列を含むリンクをクリックする
- 文字列は、既存のpwを再度ハッシュすることによって検証されます。一致する場合、ユーザーのpwはリセットされます
ユーザーのパスワードはすでにハッシュ化およびソルト化された形式で保存されていることに注意してください。一意であるが繰り返し可能な文字列を取得するために、もう一度パスワードをハッシュ化しています。
そして、はい、明らかな「欠陥」が1つあります。このように生成されたリセットリンクは、ユーザーがパスワードを変更する(リンクをクリックする)まで期限切れになりません。しかし、なぜこれが問題になるのかはよくわかりません。メールボックスが危険にさらされた場合、ユーザーはとにかく困惑します。また、ユーザーのパスワードが変更されると、リセットリンクが一致しなくなるため、再利用のリスクはありません。
asp.net - gmail ( smtp.gmail.com ) を使用して、新しいパスワード - Asp.net - を送信します。
私はすべてのヘルプとすべてのフォーラムを調べましたが、どれも私を助けてくれませんでした。これが私の問題です
- ASP.NET 3.5 を使用して localhost でサイトを開発する
- を使用して「パスワードを忘れた」機能を提供したい
<asp:PasswordRecovery>
- 本当の助けは大歓迎です。web.configを変更するか、プログラムで送信したいことに注意してください。
ありがとう