2

一部のツールを .NET から Web サービス スタイルのバックエンドを使用して HTML5 に変換することを検討しています。バックエンド自体は、WebSocket を実装する組み込みハードウェア上で完全にカスタム実行されます。つまり、完全に制御できます。

私が抱えている問題は、コードの半分がバックエンドに接続する JavaScript で記述されるという事実で発生します。理想的には、「私たち」以外の誰もこれを行うことができないようにしたいと考えています。そして私たちとは、私たちのページでホストされている JavaScript を意味します (これらは同じ組み込み Web サーバーから提供されます)。

サード パーティ、具体的には、ボックスにないコードが Web サービスを呼び出すのを防ぐことはできますか?

私にはいくつかのアイデアがありますが、さまざまな欠点がある絶対確実なものはありません。

  • 各接続のリファラー アドレスが Web サーバーのものであることを確認します。
  • ページが提供されると、一時的なパス トークンのように、JS が Web サーバーに接続するために使用する「シード」を JS に埋め込みます。正しいシードを持つリクエストのみが処理されます。

これを達成する方法についてのアイデアは素晴らしいでしょう。誰にでもできるシステムを手に入れることはできないかもしれませんが、「近い」ものは受け入れられます。

4

2 に答える 2

1

あなたが防ごうとしているのはCSRF - Cross-site Request Forgeryと呼ばれるものです。

あなたの 2 番目のアイデア - Web サーバーだけが生成できるトークンを要求ヘッダーに提供するようにクライアントに要求することは、この種の攻撃に対する一般的な保護です。

于 2012-08-21T13:59:01.203 に答える
0

Web サービスが呼び出されたコード場所を知ることはできません。Web 要求を受け取るだけです。すべてが偽装される可能性があります。

したがって、クライアントがサービスを使用する権利を証明できる認証システムが必要になります。公開されないことが確実な「シード」で十分でしょう。

于 2012-08-21T14:07:08.013 に答える