問題タブ [javascript-security]
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.
javascript - 「クロスドメイン Ajax」のセキュリティ問題に関する明確化
クロスドメイン Ajax リクエストを許可したと仮定します。
コードは次のようになります。
この呼び出しにはどのようなセキュリティ リスクがありますか?
編集 上記の質問を明確にするために。
上記のシナリオでは、Cookie が mail.google.com に送信されます。ブラウザが現在保存しているすべての Cookie ですか、それともドメイン Cookie だけですか? すべての Cookie の場合、クロスドメインの ajax 呼び出しが問題になる理由がわかりました。しかし、その場合、ブラウザーがすべての Cookie を送信する理由がわかりません。利点は何ですか?
java - サーバー側で暗号化し、クライアント側で(javascriptを使用して)復号化することは可能ですか?
サーバー側から機密情報を送信する必要があるため、サーバー側で (java を使用して) 暗号化し、クライアント側で (任意の JavaScript ライブラリを使用して) 非対称キー暗号化を使用して同じデータを復号化する必要があるシナリオがあります。ここでの私の質問は -
- それは本当に可能ですか?はいの場合、どのように?
- いいえの場合?なぜ?
それが本当に可能である場合は、開始するためのリンクまたは例を提供してください。不可能な場合にのみ代替案を提供してください (そのための SSL があることは知っていますが、これは脇に置いておいてください)。
どんな助けでも大歓迎です。
javascript - javascript でフォームを部分的にブロックすると、セキュリティ上の脆弱性が生じる
システムユーザーが入力する必要がある入力フィールドがたくさんある巨大なフォームがあります。これらのフィールドの一部は、Javascript 関数によってブロックされています。これは、場合によってはシステムによって自動的に入力されるためです。例を挙げましょう:
ユーザーがユーザー コードを提供すると、連絡先情報が入力され、 でブロックされdisabled="disabled"
ます。誰かが間違った意図でページ コードにアクセスして消去すると、disabled="disabled"
ブロックされたフィールドに間違ったデータが入力される可能性があります。Javascriptのみを使用してこれを防ぐ方法はありますか?
angularjs - AngularJS のビュー内からウィンドウを閉じる
AnglarJS のビュー内からウィンドウを閉じようとしていますが、次のエラーが発生します。
スクリプトは、それによって開かれたウィンドウのみを閉じることができます。
のスクリプトは次のindex.html
とおりです。
これはmain.html
次のとおりです。
window.close() の最新の作業仕様から、次のことを認識しています。
Window オブジェクトの close() メソッドは、次の条件がすべて満たされている場合、ブラウジング コンテキスト A を閉じる必要があります。
- 対応するブラウジング コンテキスト A は、スクリプトで閉じることができます。
- 現在のスクリプトのブラウジング コンテキストは、ブラウジング コンテキスト A に精通しています。
- 現行スクリプトのブラウジング コンテキストは、ブラウジング コンテキスト A をナビゲートできます。
しかし、なぜ私はこれを手に入れているのですか?私は同じ文脈の中にいませんか?そして、それを修正する方法は?
ありがとう。
openid - Google API を使用しない Google OpenID Connect for Authentication
OpenID Connect FAQによると、主な使用例の 1 つは、「サイト開発者がパスワードの保存と管理の責任を負わずにユーザーを認証できるようにする」ことです。
Google+ サインインは、OpenID Connect の実装です。Google にアプリを登録し、そのアプリがアクセスできるようにする Google API を選択すると理解しています。
Google API を使用せずに、(ブラウザベースのアプリの) 認証のみにサービスを使用することは、Google+ サインインの有効な使用法ですか?
それがサービス/テクノロジーの有効なアプリケーションである場合、その認証機能を統合するために Web アプリケーションが行う必要があること、および Web アプリケーションの HTTP API の設計とその後の実装にどのような影響を与えるかについての適切な説明はどこにありますか?
javascript - javascriptクライアントで休止状態のバージョン番号が不変のままであることを確認するにはどうすればよいですか?
Java と Hibernate を使用した Rest バックエンドがあり、バージョン プロパティで楽観的ロックを使用しています。同時実行制御のために、このバージョン プロパティはクライアントに送信され、ポスト リクエストでサーバーに送信される必要があります。ただし、JavaScript クライアントでは、このプロパティの整合性を制御できなくなります。たとえば、次のようになります。
- クライアント「A」がリソース 1 を要求します。
- クライアント「B」が同じリソースを要求します。
- サーバーはリソース 1 バージョン 1 で両方のクライアントに応答します (それぞれの応答で)
- クライアント「A」はリソースを変更し、変更を保存するためにポストを作成します。
- サーバーは POST リクエストを処理し、Hibernate はバージョン番号をチェックします。1 = 1 なので、リソースは変更されます。
- クライアント B は JavaScript をいじり、バージョン プロパティを 2 に変更し、POST リクエストを行います。サーバーは POST リクエストを処理し、現在は 2 = 2 であるため、リソースが変更され、クライアント A によって行われた変更は失われます。
これは Rest バックエンドであることを忘れないでください。したがって、各ユーザーに配信されたオブジェクトのバージョン番号をサーバーに保存することはできません。
それで、これが私が思うような有効な質問である場合、クライアントでバージョンが不変であることをどのように保証できますか?
javascript - Javascript でのクライアントの潜在的なコード インジェクションの防止
私はgaeでJavaでアプリケーションを作成し、checkmarxに対して実行してセキュリティの脆弱性をチェックしましたが、見出しの下にエラーがスローされています-クライアントの潜在的なコードインジェクション。次の行にエラーが表示されます。
以下は私のコードからのスニペットであり、使用する前に電子メールをエスケープしているときにエラーがスローされる理由がわかりません。
渡された email 値を使用して loadAllData メソッドが行うことは次のとおりです。
誰でも助けることができますか?