2017-04-11 54 views
1

我正在開發一個Chrome擴展,嘗試保護用戶不會被重定向到惡意網頁。如何區分用戶重定向自動重定向(單擊)

當用戶訪問像「fa ec book.com」這樣的陰影域名時,他將被重定向到另一個頁面,但這不是他的意圖。當用戶打算被重定向到另一個頁面時,這主要是由於點擊(f.e.a點擊超鏈接:<a href="http://foobar.com">

如何區分這兩種類型?

目前我正在檢查使用此代碼從我的擴展重定向的細節,但我無法找到任何東西來區分一個從其他:除非專門鉻使得提供這些信息

chrome.webRequest.onBeforeRedirect.addListener(
    function(details) { 
    console.log(details); 
    }, 
    {urls: ['<all_urls>']}); 
+2

[只有當用戶更改URL時如何觸發事件]可能重複(http://stackoverflow.com/questions/42132733/how-to-trigger-an-event-only-when- (用戶更改網址) – Makyen

+0

相關:[僅當用戶單擊鏈接打開時防止初始webRequest重定向新選項卡/窗口](http://stackoverflow.com/q/41131300) – Makyen

+0

@Makyen您的第一個鏈接看起來非常有趣和有幫助。 – Stanko

回答

2

,然後您無法直接檢測某個請求是由於重定向還是由於單擊超鏈接或在瀏覽器中輸入URL而導致的直接請求的結果。兩者都是標準瀏覽器請求。 (您可以潛在地檢查HTTP引用的直接鏈接,也許看到的鏈接來源 - 但這可能是不可靠的。)

IMO你需要它實際發生之前檢查重定向。換句話說,通過掃描前一個響應。但可能有3種重定向:

  1. HTTP重定向:檢查3xx狀態碼和Location: HTTP響應標頭。
  2. META更新:請掃描該標籤的HTML head部分。 (儘管它可以在JS後期加入)
  3. JavaScript重定向:除非您先以某種方式在沙盒中處理JavaScript,否則很難找到它。