2017-04-11 24 views
1

悪意のあるWebページにリダイレクトされないようにユーザーを保護しようとしているChrome拡張機能を開発中です。ユーザーのリダイレクト(クリック)から自動リダイレクトを区別する方法

ユーザーが「fa ec book.com」のような日陰のドメインにアクセスすると、彼は別のページにリダイレクトされますが、これは彼の意図ではありません。ユーザーが別のページにリダイレクトされる場合、これは主にクリックによるものです(ハイパーリンクのクリック:<a href="http://foobar.com">

どのようにして2つのタイプを区別できますか?その後、クロムは特にこの情報が利用できるようにする場合を除き

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-ユーザー変更URL) – Makyen

+0

関連:[新しいタブ/ウィンドウをリダイレクトする前に、最初のwebRequestを禁止する]リンク先をクリックすると開いた場合のみ(0120-336-501) – Makyen

+0

@Makyenリンクは非常に興味深く役立ちます。 – Stanko

答えて

2

は現在、私は私の拡張子から、このコードを使用してリダイレクトから詳細を検査していますが、私は他のものを区別するために何かを見つけることができませんハイパーリンクをクリックしたりブラウザにURLを入力した結果、リダイレクトやダイレクトリクエストがリクエストの結果であるかどうかを直接検出することはできません。どちらも標準のブラウザ要求です。 (あなたが潜在的に直接リンクするためのHTTPリファラをチェックすることができ、おそらくリンクがどこ見て - 。これは信頼できない可能性がある)

それが実際に起こる前IMOあなたはリダイレクトをチェックする必要があります。言い換えれば、前の応答を走査することによって。しかし、3種類のリダイレクトがあります。

  1. HTTPリダイレクト:3xxステータスコードとLocation: HTTP応答ヘッダーを確認します。
  2. META Refresh:このタグのHTML headセクションをスキャンします。 (JSで遅れて追加することもできますが)
  3. JavaScriptリダイレクト:サンドボックス内でJavaScriptを何らかの形で処理しない限り、これを見つけるのは非常に難しいでしょうか?
関連する問題