0

ドキュメントから、それがどのように機能するかわかりません。Firebug を使用したデバッグも役に立ちませんでした。理解を深めるには、数時間座っていなければならないかもしれません。

基本的な問題は、さまざまな地理サービス ( WFSWMS)の可用性を確認したいということです。XSS ブラウザの制限の問題により、機能XmlHttpRequestしませんでした。

外部サービスに影響を与えていないため、Socketいくつかのシナリオを実装できないため、インターフェイスは使用するのに適したものだと思います。CORS

次のコードを使用すると正常に動作し、要求されたデータが返されます (ダウンロードされた XML 応答の Firefox ポップアップ)。

var socket = new easyXDM.Socket({
    remote: "http://path.to/provider/", // the path to the provider
    onReady:function(success) {
        alert(success);  // will not be called
    }
    onMessage:function(message, origin) {
        alert(message, origin);  // will not be called
    }
});

ただし、取得した応答の種類を特定するために処理できるHTTPオブジェクトに到達する方法 (およびコールバックを使用して試行)が見つかりませんでした。onReadyonMessagestatus200404

たぶん、これを解決するのは完全に間違った方法ですか?

4

1 に答える 1

0

悲しいことに、私の報奨金でさえ答えを得るのに役立たなかったので、私は自分で問題に関する詳細情報を収集するためにざっと見回しました...最初に...

XSS の一般的な問題

XSSといくつかの関連する問題/リンクを見ると、解決策よりも問題について議論されます (これは問題ありません)。

JavaScript の同一生成元ポリシーに関するFirefoxの関連ドキュメントを見ると、私たちのグローバル スローガンであるSecurity over Freedom 1がこの領域にも適用されていることが明らかになります。(個人的には、この問題を解決する方法が好きではなく、この回答の最後に記載されているように、これらの問題を解決する別の方法を見たいと思っていました。)

1 :ベンジャミン・フランクリンズ (米国の創設者) の発言:安全のために自由を犠牲にする者は、どちらにも値しない.

CORS ソリューション (=> 外部サーバーの依存関係)

サポートされている唯一の標準/堅牢な方法は、 CORS ( Cross Origin Resource Sharing ) 機能を使用することのようです。基本的には、外部サーバー少なくともCORS準拠の情報 ( HTTP ヘッダーAccess-Control-Allow-Origin: *) を配信して、他のサーバー (= クライアント ブラウザー) がデータ/コンテンツ/... を要求できるようにする必要があることを意味します。外部サーバーには、これを行うための一般的な堅牢なクライアント側/ブラウザーの方法はまったくありません:-(。

サーバー/クライアント アプリケーションの堅牢なソリューション (外部サーバー コントロールがない場合)

したがって、外部サーバーがCORSをサポートしていない場合、またはリクエスターのオリジン(プロトコル/ドメイン/ポートの組み合わせ) で使用できるように構成されていない場合は、この種のアクセスを独自のアプリケーション サーバー側で行うのが最善のようです。これらの種類の制限ですが、もちろん他の意味もあります。

私が見たかったクライアント側のソリューション

標準ユーザーとして Web をブラウジングするクライアント側の世界を理解するための最初の紹介 ...

個人的には、Web を閲覧しているときに追跡されるのは好きではありません。また、ハードウェアやネットワーク リソースが貧弱で速度が低下するのも好きではありません。そのため、私はRequestPolicyAdBlock PlusGhosteryCookie MonsterFlashblock ... などのさまざまな便利なプラグインで Firefox を使用しています。これはすでに複雑さを示しており、通常、平均的なユーザーが処理できる/処理することはありません。しかし、特にRequestPolicyを見ると、クライアント側で外部リソースへのアクセスをどのように処理できるかがわかります。

したがって、たとえば Firefox (これらのプラグインなし) がRequestPolicyに似たダイアログをユーザーに表示する機能をサポートし、次のような内容を示す場合、 one origin policyを緩めることができます。

  [x] 'http://srcdomain.com' (this site)
  [ ] all sites  (select to block/allow for all sites)

would like to request some data from 

  [x] 'http://dstdomain.com'
  [x] 'http://dst2domain.com' 

in a generally considered UNSECURE way.

You can selected one of the following options about how to proceed with
access to the selected sites from the selected sites:

  [x] block always (generally recommended)
  [ ] block only for this session
  [ ] allow always (but not to subreferences)  [non-recursively]
  [ ] allow only for this session (but not to subreferences)  [non-recursively]
  [ ] allow always (and all subreferences)  [recursively]
  [ ] allow only for this session (and all subreferences)  [recursively]

もちろん、これは平均的なユーザーに対して可能な限り明確に定式化する必要がありますが、ここでは確かに行っていません。また、他の既存のテクノロジー (Cookie 処理、JavaScript 処理など) のような設定でデフォルトで処理することもできます。 .

このようにして、私の状況ではこれに必要なユーザー設定の量をうまく処理できたので、あまり手間をかけずに問題を解決できました。

easyXdmに関する回答

彼らはCORSも推奨しており、ブラウザに依存しているため、これが唯一の堅牢な方法だと思いますが、ブラウザ/バージョン/フラッシュなどのプラグインによっては、いくつかの回避策がまだ存在する可能性があります.

于 2014-04-02T10:21:36.110 に答える