5

ユーザーが任意のページから CORS を使用してサーバーにドメイン投稿できるように、ブックマークレットを作成しています。ユーザーは投稿前に認証する必要があり、Cookie が使用されます。悪意のある Web サイトが Web ページに JavaScript コードを埋め込み、ユーザーの資格情報を使用してサーバーにクロス ドメイン ポストを行うのを防ぐ方法はありますか?

4

1 に答える 1

1

理論的には、これに対する解決策があるかもしれません。

  1. 各ユーザーのブックマークレットに一意の CSRF トークンを埋め込みます。
  2. ブックマークレットのコードを匿名関数でラップして、ページがアクセスできないようにします。
  3. ブックマークレットに強力なハッシュ関数を埋め込みます。これは、改ざんできないように、ブックマークレットのコード内に完全に配置する必要があります。
  4. XMLHttpRequest で、次を送信します。
    1. メッセージ
    2. 次のハッシュ:
      1. メッセージ
      2. CSRF トークン
      3. 独特のロングソルト
      4. ユーザーID
      5. タイムスタンプ (メッセージが別の時間に送信されたのではなく、現在送信されていることを確認するため)
    3. タイムスタンプ
    4. ユーザーID
  5. サーバーで、次を検証します。
    1. タイムスタンプが許容誤差範囲内であること (ユーザーのコンピューターの時計がずれている可能性があるため、これは必要です)
    2. ハッシュが正しいこと
  6. すべてが正しければ、メッセージを投稿できます。

この概念には 1 つの欠陥があります。Web サイトがブックマークレットで使用される機能のいずれかを改ざんした場合 ( Array().

于 2012-10-02T11:20:44.860 に答える