問題タブ [machinekey]
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.
asp.net - MSDN の回避策にもかかわらず、.Net 4.0 でハッシュが機能しなくなった
SqlMembershipProvider を使用し、指定されたマシン キーを持つ既存のアプリを運用しています。
現在、.Net 2.0 AppPool で実行されます。
バックアップしている既存のデータベースを使用する必要がある新しいアプリケーションを作成しています。SqlMembershipProvider を動作させようとしていますが (動作しています)、既知のユーザー名/パスワードを動作させることができません。このアカウントは prod で機能し、パスワード ハッシュとソルトは両方のデータベース (prod と mine) で同じです。ただし、SqlMembershipProvider がデータベースからのパスワードを入力されたハッシュ化されたパスワードと比較する時点では、それらは同じではありません。
この記事では、.Net 4.0 の ASP.Net の既定のハッシュ アルゴリズムを使用した重大な変更を提案しています: http://www.asp.net/learn/whitepapers/aspnet4/breaking-changes
ただし、提案されているように、既にマシン キーを指定しています。さらに、.Net 4.0 コンポーネントを取り除いて 3.5 (CLR 2) に戻しましたが、入力されたパスワードのハッシュは同じままです。
さらに、この新しい一時アプリを本番環境と同じサーバーに再デプロイしようとしましたが、まだログインに失敗します (ただし、パスワード ハッシュの不一致が原因で失敗するかどうかは確認できません)。
ここで他に何を試すことができますか?
c# - WebResources.axdまたはScriptResources.axdは実際にどのように機能しますか?
WebResources.axdまたはScriptResources.axdが実際にどのように機能するかをどこで知ることができますか?
.axdに追加される文字列は何ですか?この文字列は変更されますか、それとも一定ですか?それはページ、セッション固有ですか?これらのファイルをプロキシにキャッシュできますか?
内部ではどのように機能しますか?ASP.NETの脆弱性が発見された後、これは特に重要です...他の人が同様のコーディングエラーを実装したくない場合があるためです。
私の理解では、暗号化されたキーは、それらがどのように動作するかを指示するために使用されます。(マシンキー)が、私はそれ以上のことは知りません。
asp.net - ASP.NET machineKey 構成セクションの既定の場所
machineKey
ASP.NETの構成セクションはどこにありますか?
私のアプリケーションにはありません。Web.config
ルートWeb.config
にもありませんし、私のアプリケーションにもありませんmachine.config
。
これは、ASP.NET にハードコーディングされた他の既定値があるということですか? もしそうなら、デフォルトは何ですか?(.NET 2 および 4 の場合)
これを読んだ:http://msdn.microsoft.com/en-us/library/w8h3skw9.aspx
私はどこかでこのようなものを見つけることを期待していました:
編集: 1.1 ドキュメントはデフォルト値に関してかなり明確に見えます: http://msdn.microsoft.com/en-us/library/w8h3skw9(VS.71).aspxしかし、4 つのドキュメントはかなりあいまいですhttp://msdn.microsoft .com/en-us/library/w8h3skw9.aspx
asp.net - Web ファーム サイトの web.config に machineKey を追加する
私たち (私たちの IT パートナー) は最近、所有している Web ファーム サイトの一部の DNS を変更しました。これにより、2 つの実稼働サーバーがそれらの間でラウンドロビン DNS スイッチングを行うようになりました。WebResource.axd
この切り替えの前は、ファイルに問題はありませんでした。切り替え以降、ライブの公開 URL にアクセスすると、次のエラーが発生します。
暗号例外
パディングが無効であり、削除できません。
特定のサーバー自体にヒットすると、正常にロードされます。この問題を調査したところ、2 つのサーバー間でアセットを共有しているため、2 つのサーバー間で一貫して暗号化および復号化できるように、各サーバーで一貫性を持たせる必要があるmachineKey
ようweb.config
です。私の質問は次のとおりです。
- サーバー上のツールを使用して生成できます
machineKey
か、それともコードを記述する必要がありますか? machineKey
各サーバーの にを追加するだけでよいweb.config
ですか、それとも 2 つのサーバーを連携させるために他に何かする必要があると思いますか? (web.config
現在、どちらにも はありませんmachineKey
)
machinekey - イベントコード: 4005
何か奇妙なことが起こっています!ユーザーが「ログアウト」の問題を経験している数日です。エラーメッセージは次のとおりです。
イベント コード: 4005 イベント メッセージ: 要求に対するフォーム認証に失敗しました。理由: 提供されたチケットが無効でした。
ここにデータ:
- Web サイトは、ロード バランサーの背後にある 3 台のサーバーで実行されています
はい、構成が共有され、すべてのサーバーが NAS 上の同じフォルダーを指しているため、マシン キーはすべての Web サイトで同じです。これがキーです。
/li>ここで提案されているように、コンソール アプリを使用してキーを作成しました。
フォーム認証構成は
/li>サーバーの時刻は同期しています
... 他に何か提案はありますか?
乾杯
asp.net - ASP.NET MVC のページでの単純なパスワード保護
ASP.NET MVC アプリケーションで個々の (動的) ページを保護したいと考えています。
完全な認証システムを使用したくありません。サイトの管理者には既にフォーム認証を使用しています。代わりに、これは特定のユーザーのパスワードを含むページへのリンクを送信できるようにするためです。
私が現在これを処理している方法は、有効なパスワードが送信されたときに、ページ ID (Guid) とそのセッション ID を含む暗号化された Cookie を作成し、それらをページにリダイレクトすることです。「Page」コントローラ アクションで、この Cookie を検証します。
最初の質問は、これが最善の (最も安全な) アプローチですか (フォーム認証を使用することを除けば) ですか?
2 番目の質問です。フォーム認証で暗号化を実行するために使用されるマシン キーを読み取ることはできますか、それとも FormsAuthentication を使用して Cookie を暗号化することはできますか?
展開する前に常に新しいマシン キーを生成するため、すべての暗号化で同じキーを使用した方がよいでしょう。
[アップデート]
マシン キーにアクセスする方法については、http://rich-rogers.com/archive/asp.net-c-sharp-encrypt-hash-using-machinekey-valuesで回答を見つけました。
【アップデート2】
この質問をした後、彼らがアクセスできるページのリストを維持する必要があるため、現在のセッションにこれらを保存するだけの方がよいと思います。有効期限のあるセキュリティ トークンのリストを保存できます。私はすでにセッションのラッパーを持っているので、これも簡単に単体テストできるはずです。
asp.net - ビューステートMACのAsp.net検証に失敗しました
特定の時間に asp.net Web サイトで次のエラーが表示されます。
ページが更新されても問題ありません。この問題を解決するにはどうすればよいですか?
asp.net-mvc - マシンキーが変更されたときにASPX匿名Cookieが壊れた
私の会社は最近トラフィックの急増に見舞われたため、負荷を処理するために追加のEC2インスタンスを起動しようとしました。残念ながら、これによりユーザーはCookieに問題を引き起こしました(つまり、資格情報を提供した後もサイトがログインを要求し続けました)。これは、Web.configファイルにマシンキーを設定しなかったためだと考えられます(各負荷分散マシンのWeb.configファイルは他の点では同一です)。
これで、Web.configに新しいマシンキー値を設定したくない位置になりました。これにより、カートにアイテムを追加した可能性のあるすべての匿名ユーザーがログアウトされます。スケーリングもサポートしたい。
だから、質問:
- マシンキーがユーザーが新しいCookieを必要としている原因であるという私たちの仮定は正しいですか?
- 他の負荷分散サーバーにコピーできるように、使用されている現在またはデフォルトのマシンキーを判別する方法はありますか?
- 2に失敗すると、匿名ユーザーのデータを失うことなく新しいマシンキーを設定する方法はありますか?
asp.net-mvc-2 - MVC2 Anti-ForgeryToken ヘルプ
アプリ内の POST アクションに偽造防止トークンを適用しました。セッションがタイムアウトすると、「必要な偽造防止トークンが提供されなかったか、無効でした」というエラーが表示されます。web.config に machineKey を追加しましたが、問題は解決していません。トークンにマシンキーを強制的に使用させるために必要なことはありますか?
これに関する助けに感謝します。
encryption - SqlMembershipProvider の MachineKey で AES256 を「復号化」として使用する
SharePoint 2010 サイトのフォーム ベース認証用のカスタム登録フォームを作成し、パスワードを aspnet_Membership データベース テーブルに「暗号化」として保存しています。
web.config の私の設定は、「復号化」パラメーターが「AES」であることを示しています。上司は、より安全な AES256 を使用するように求めていますが、これを行う方法がわかりません。私はグーグルで「stackoverflow-ing」を行ってきましたが、これまでのところ、何をする必要があるか、またはどこで良い情報を探すべきかを説明する投稿を見つけることができませんでした.
私の質問は、次のとおりです。
- 「AES256」は「復号化」パラメータの有効な値ですか?
- そうでない場合、AES を強力にするために必要なのは、より長い「復号化キー」を生成することだけですか? つまり、復号化キーを 64 文字の長さにすると、AES256 になりますか?
- 現在の考え方に完全に基づいていない場合、誰かが私を軌道に乗せたり、デフォルトのAESではなくAES256を使用するようにweb.configを更新する方法を説明したり(または説明にリンクしたり)できますか?
誰かが「ハッシュを使用する必要がある」と言いたい場合に備えて..そこにいて、それについて話し合って、暗号化を使用することにしました。邪魔にならないようにと思っただけです:)