問題タブ [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.

0 投票する
2 に答える
236 参照

javascript - どのJavascriptセキュリティ技術と問題が堅実なWeb開発のためのプログラマーのスキルセットの一部であるべきですか?

どのJavascriptセキュリティ技術、問題、および制限が、堅実なWeb開発のためのプログラマーのスキルセットの一部である必要がありますか?

0 投票する
2 に答える
561 参照

javascript - Web ページに安全なパスワード ダイアログを表示する

Web ネットワーク用のシングル サインオン システムを構築しました。それはこのように動作します:

  • ユーザーは、ログインしたいサイト (「安全でないサイト」) のログイン リンクをクリックします。安全でないサイトの ID が URL で渡されます。
  • 彼は最終的にシステムの (「RAS」と呼ばれる) ログイン ページにたどり着きます。これは独自のドメイン上にあり、将来的には HTTPS を取得する可能性があるため、ユーザーは自分のデータが安全であることを確認できます。
  • ユーザーがログインします。ユーザー ID、安全でないサイト ID、および有効期限を保持する「セッション」がサーバー上で作成されます。
  • ユーザーのブラウザは安全でないサイトにリダイレクトされます。新しく作成されたセッションの ID は、URL パラメーターとして渡されます。
  • 安全でないサイトは、ユーザーのデータの要求を RAS に送信します。これには、セッション ID と、RAS 上の安全でないサイトを識別して認証する資格情報が含まれています。(ユーザーとそのブラウザは完全に除外されていることに注意してください)
  • ユーザーのデータ (パスワードなし) は安全でないサイトに返されます。次に、安全でないサイトはこれを独自のセッションに保存しますが、それは問題ではありません。

(動作を確認するには、cncguild.net などにアクセスし、上部近くにあるログイン リンクをクリックします)

ご覧のとおり、これはかなり安全です。安全でないサイトがユーザーのパスワードにアクセスすることは決してありません。

ただし、使いやすさに関しては、ログイン プロセスを安全でないサイトと統合したいと考えています。これを行う方法は、「ログインページに送信してリダイレクトする」全体を行う代わりに、ある種のポップアップを開くことです。現在、これを行うには3つの方法があります。

  • ログイン フォームにオーバーレイ div を追加します。ログインが完了し、クライアント側のコードがセッション ID を受け取るまで、AJAX を使用して RAS と通信します。次に、このセッション ID を独自のサーバー側コードに (更新または AJAX を介して) 送信することにより、ユーザー データの取得を処理できます。これにより最高のユーザビリティが得られますが、セキュリティ上の重大な落とし穴がいくつかあります。

    • 安全でないサイトの Javascript がパスワードにアクセスできます
    • ユーザーはソースをチェックして盗もうとしているかどうかを確認できますが、誰が真剣にそれを行うのでしょうか?
  • フォームを同じ HTML ドキュメントに配置する代わりに、オーバーレイ div にログイン ページの iframe を含めます。

    • これにより、安全でないサイトからパスワードが隠されます (ブラウザーに適切な iframe Javascript セキュリティ ポリシーがある場合)。
    • ユーザーにそうであることを示す明確なブラウザ インターフェイス マーカーはありません。したがって、悪意のある安全でないサイトの作成者は、まったく同じように見えるログイン フォームの独自のコピーを作成することができますが、実際には iframe にはありません。
    • 更新する以外に、セッション ID を安全でないサイトに戻す方法はありません。安全でないサイトにログインするための派手な AJAX はありません。
  • 実際のポップアップでログイン ページを開く (window.open)

    • URL と HTTPS アイコンが明確に表示されます
    • それは本当に醜いかもしれません。ユーザビリティが現在の動作方法に比べて実際に多くのメリットがあるかどうかはわかりません.

これらの 3 つの選択肢のそれぞれについて、あなたはどのような意見をお持ちですか? もちろん、私は最初のオプションの嘲笑を期待しています。それはセキュリティを粉々に引き裂きます。完全を期すために含めました。追加オプションも大歓迎

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

security - XMLHttpRequestの同一生成元ポリシーがなぜ

ブラウザが同じオリジンポリシーをXMLHttpRequestに適用するのはなぜですか?開発者にとっては本当に不便ですが、実際にハッカーを阻止することにはほとんど効果がないようです。回避策がありますが、外部ソースからのjavascriptを含めることができます(JSONPの背後にある力)。

これは、大部分が相互に関連しているWebの古い「機能」のようです。

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

javascript - 別のドメインのjsファイルにリンクできるのはなぜですか?

y.comからx.comのjavascriptファイル(たとえば、google analyticsやjquery)にリンクしても、クロスドメインのセキュリティ問題が発生しないのはなぜですか?

例えば:

y.com/index.htmlには次のものがあります。

これが問題ない場合とそうでない場合をどうやって知ることができますか?

0 投票する
2 に答える
129 参照

javascript - 他のユーザーが JavaScript にアクセスするのをブロックする方法

重複の可能性:
クライアント側のロジックとデータの保護

他の人がソースを表示して JavaScript を読み取れないようにするにはどうすればよいですか?

私のことは、よくわからないので、JavaScriptにアクセスできるようになりましたが、JavaScriptイベントを変更するツールを使用して外部から誰かを推測するだけです。

では、認証を行う方法は?

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

javascript - Javaスクリプトファイルで使用されるデータの保護

私はWebモバイルアプリケーションに取り組んでいます。私のアプリケーションでは、次を使用してJavaスクリプトでサーバーからjson文字列を取得します。

次に、json テキストを json オブジェクトに変換し、ローカル ストレージに保存してから、別の Java スクリプトで使用します。私のプロジェクトでは、HTML と Java スクリプト ファイルのみを使用していますが、すべて正常に動作します。私の唯一の問題は、アプリケーションを他のユーザーが使用できないように、取得したデータを保護する方法であり、サーバーから取得している json 文字列にアクセスさせることは許可されていません。

お時間ありがとうございました

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

facebook - Facebook Page Tab アプリケーション (iframe 内) から画面解像度情報にアクセスする方法

ユーザーがアップロードした写真にいくつかの変更を加えてデスクトップの壁紙として出力するFBアプリケーションを入手しました。現在のユーザーの画面解像度を事前に定義したいのですが、iframe からそれを実現することは不可能に見えます (セキュリティ上の理由により)。

この情報を取得するために、FB アプリケーションの iframe 内で実行できる特別なトリックはありますか?

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

javascript - JavaScript セキュリティに関する記事

Javascript セキュリティの基礎とその弱点を探しています。私はすでに Javascript: The Complete Rereference 2nd Edition を読んでいます。良い記事を探しています。何か提案はありますか?ありがとう。

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

php - Chrome拡張機能の内部からリモートデータベースを安全に更新するにはどうすればよいですか?

私はこれを理解するのに本当に苦労しています。私を救うためにウェブをクロールするのに約4時間費やしました。

シナリオを想像してみてください。

  1. Webページでの特定のアクション(主にボタンのクリック)をキャプチャするChrome拡張機能をすでに作成しました。そのアクションは、いくつかのユーザー情報とボタン情報(すべてページ自体に存在する)をキャプチャして表示する関数をトリガーします

  2. 今、私はプラグインがこれをリモートサーバー上のデータベース設定に更新できるようにしたいと思っています。

私はPHPに精通しているので(したがってMySQLが良い選択です)、更新が拡張機能自体からのみ行われるようにするための解決策を探しています。

このための最良のオプションは、http://remoteserver.tld/update-db.php?id = XXXX&action = YYYYY&foo =bar ...などのようなGET/POSTリクエストを実行することだと思います。ユーザーはプラグインの外部でこのURLにPOST変数を開く/渡しますか?

データは引き続き更新され、整合性が失われます。

次善の策は、リクエストにキーを含めることでしたが、拡張機能はJSで記述されているため、ほとんどの人がキーを盗聴できます。

リモートサーバー上のデータベースを更新し、アクションが認証されていることを確認するための最良の方法を教えてください。

乾杯!