問題タブ [nonce]

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.

0 投票する
1 に答える
606 参照

c# - C# で Threema-API に NaCl 暗号化を使用するには?

内部ツール用の C# Threema API を作成したいと考えています。

API は次のとおりです: https://gateway.threema.ch/en/developer/api

それは、エンドツーエンドの暗号化のために、NaCl暗号化が必要であると言っています.

では、このデータを暗号化する方法は? もちろん、ノンス用に生成された 24 バイト長の 16 進エンコード文字列を使用できますが、C# でそのノンスを使用してテキストを暗号化するにはどうすればよいですか?

0 投票する
1 に答える
506 参照

node.js - NodeJS、ExpressJS、Mongoose 4.4、同時実行のためのナンス、Document.update

NodeJS、Express、MongoDB、Mongoose の組み合わせがあります。同時編集を可能にするために、マングースの約束でナンスを実装しました。以下を参照してください。

並行性の更新はこれに基づいています: http://www.mattpalmerlee.com/2014/03/22/a-pattern-for-handling-concurrent/

そしてマングースのドキュメントを読むと、更新はこれに基づいています。 http://mongoosejs.com/docs/api.html#document_Document-update

ただし、コードが最後の .then (//update 応答) に入ると、raw.n (numberAffected) = 1 が表示されますが、データベースは更新されませんか?

答えはおそらく近いですが、私はそれを見逃しています。これには何が欠けていますか?

0 投票する
0 に答える
78 参照

javascript - ajax 保存で nonce が失敗する

2 つのフォームと 2 つの個別のナンス フィールド、および AJAX で保存するその他の入力フィールドを含むオプション ページを作成しました。

問題は、関数を保存して呼び出して AJAX 経由でオプションを保存するたびに、nonce が失敗した場合に発生する「Busted」値を取得することです。

レイアウト部分は次のようになります。

これは基本的にレイアウトのドロップダウンで、設定してオプションに保存できます。これは、初めてセットアップしたときにのみ機能します。それは保存され、すべて問題ありません。しかし、それを変更したい場合、ナンスは失敗します。保存関数 (最初のフォームの場合) は次のようになります。

ネットワークタブで、admin-ajax.phpすべての$_POST値が正しく表示されるようになりました

ここに画像の説明を入力 ここに画像の説明を入力

ajaxnonceプレビューではから値を取得するため、失敗することはわかっています$_POST( に入れていることがわかりますdie())。

しかし、なぜ失敗するのでしょうか。

2 番目の形式には、別の名前、別の nonce 名、すべてがあります。ajax は機能しますが、ナンスが失敗し、理由がわかりません :\

どんな助けでも大歓迎です。

0 投票する
0 に答える
71 参照

asp.net - ASP.net の「非表示のフォーム フィールド内の暗号で保護されたページまたはフォーム ノンス」とは何ですか?

ASP.net Web アプリケーションに提供できるセキュリティについて学んでいます。セッション管理でセキュリティを提供できる「暗号化」と「ナンス」という用語に出くわしました。これについて詳しく教えてください。

0 投票する
0 に答える
85 参照

javascript - 生成されたノンスの長さが変更されています

固定長の nonce (長さ 9) を生成しようとしています。しかし、私のコードは、長さ 8 の nonce と 9 の長さの nonce を出力することがあります。

これは私がやろうとしていることですが、アプローチが異なります (固定ノンス長に変更しました)

長さを 9 として引数として渡しているときに、なぜ長さ 8 の nonce を出力するのか理解できませんか??

誰かがなぜこれが起こっているのかを教えてくれれば素晴らしいでしょう。

以下は完全なNodejsコードです

出力例:

0 投票する
1 に答える
206 参照

php - nonce を使用した画像と曲の読み込み

私は現在、CSS でアニメーション化された画像を音楽と共に表示するスタンドアロンのスライドショー アプリに取り組んでいます。

今日まで、画像と音楽は実際の場所から直接ロードされていました。つまり、この場所とファイルは一般に公開され、誰でもアプリを使用せずに画像や曲を直接開くことができる必要がありました。これはプロトタイピングとローンチには問題ありませんでしたが、現在は盗難に対するより高度な保護が必要です。

誤解しないでほしいのですが、本当の保護がないことはわかっています。直接ダウンロードに関しては、人々に苦労を与えたいだけです。メディア ファイルに直接リンクする方法はありません。

これが私が思いついたものです:

  • 画像と曲は PHP 経由で読み込まれます。ID をパラメーターとして指定すると、PHP がその場所を検索し、見つかった場合はファイルを提供します。さらに、ファイルは、パラメーターとして指定されたノンスが有効な場合 (存在し、30 秒以内) にのみ提供されます。nonce は PHP によって生成され、$_SESSION['nonce']変数に格納されます。

    <img src="image/imageid?nonce=[[nonce]]">
    <audio><source src="song/songid?nonce=[[nonce]]"></audio>

  • 私のアプリには、次の 3 つの機能があります。

    • (string) generateNone()nonce 値を生成、セッション保存、および返すため -> リンクを生成するためにマークアップで使用
    • (bool) validateNonce()ノンスが有効かどうかを確認し、後で削除して再利用できないようにする
    • (void) initNonces()セッションからすべてのノンスを削除します。この関数は、アプリが読み込まれるたびに呼び出され (もちろん、画像や曲の提供は含まれません)、未使用の nonce が蓄積されるのを防ぎます。

問題:

理論的には、このアイデア全体が機能します。実際には、解決できない 2 つの問題に遭遇しました。

  1. ブラウザによって画像がリロードされているように見える: jQuery/JavaScript を使用して画像が変更された場合 (たとえば、「画像 1 を非表示にして画像 2 を表示」または「画像 4 を非表示にして画像 5 を表示」)、ナンスがないため、画像をロードできません。もう有効です (= すでに一度使用されています)。検証後に nonce-deletion を停止する (= nonce が再利用可能になる) と、この問題は解決しますが、これは本当の解決策ではありません。jQuery は CSS プロパティのみを変更して画像を表示および非表示にするため、この問題は問題 2 に関連している可能性があります。

  2. 画像と曲は nonceの有効期間後に読み込まれます: ブラウザーは、CSS によって最初は非表示になっている画像を、画像が表示されるようになったときにのみ読み込むようです。これは通常、帯域幅の使用量を減らすのに役立ちますが、私のシナリオでは、30 秒の nonce ライフタイムの後に画像や曲が読み込まれないようにします。ブラウザにすべてを直接ロードさせるか、少なくとも、要求された画像/曲への接続を開いて 30 秒以内に保持する方法が必要です。

質問:

本当の問題を特定するのは難しいので、ブラウザーが内部でメディアの読み込みを処理する方法を知っている人が、説明されている問題を修正する方法についてヒントをくれることを願っています. コードが必要な場合は、お知らせください。

0 投票する
3 に答える
7496 参照

node.js - NodeJSで生成されたナンスを使用し、データベース呼び出しなしで検証を行う方法は?

ウィザードの手順を検証して次々とセキュリティを確保するためにナンスを生成しています。

nodejsでノンスを作成し、同じものをデータベースに保存して、一度使用できるようにする方法を知っています。

しかし、上記のようにノンスを生成して検証し、一度だけ使用し、可能であれば、データベースに同じものを保存せずに制限時間 (有効期限) 内に使用できるかどうか疑問に思っていました。ウィザードの 1 つのステップでクライアントを検証し、次のステップで同じことを検証します。

私は通常、以下の方法を使用してノンスを生成し、正規化し、有効期限が切れるまでmongodbに保存して、mongodbが使用されていない場合は特定の時間後に削除するようにします。

これよりもナンスを生成する適切な/最適化された方法と、データベース呼び出しなしで1回限りの使用と有効期限を処理する可能性があるかどうかを提案してください。