如何监控用户点击url并提取url



我正在做一个可以检测钓鱼网站的项目。也就是说,当用户在浏览器中浏览网页时点击链接时,会检查该链接是否为钓鱼网页。

然而,我不知道如何识别,如果用户在执行点击操作时点击了一个url。

此外,即使可以识别url上的点击,如何以字符串形式提取url,以便我可以检查链接?

看来浏览器没有API可供我使用。

有一个API。使用IntentFilter。下面是一个例子。请注意,数据字段是可选的:

<activity
        android:name="MyActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <data
                android:host="127.0.0.1"
                android:path="/path"
                android:port="18080"
                android:scheme="http" />
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
        </intent-filter>
</activity>

要获取Uri,请在您的活动中使用以下代码段:

Intent intent = MyActivity.this.getIntent();
Uri uri = intent.getData();

您可以挂接到默认的浏览器应用程序中。某些浏览器数据可通过内容提供商获得。以下代码将为您提供用户访问过的URL列表:

String columns[] = new String[] { Browser.BookmarkColumns.TITLE, Browser.BookmarkColumns.DATE, Browser.BookmarkColumns._ID };
Cursor c = managedQuery(Browser.BOOKMARKS_URI, columns, "bookmark!=1", null, null);

您可以在浏览器历史记录上放置一个ContentObserver,以便在用户访问新页面时收到通知。这样,即使用户安装了非标准浏览器,也应该得到提醒。

getContentResolver().registerContentObserver(Browser.BOOKMARKS_URI, true, new MyContentObserver(handler));

您无法挂接到默认的Browser应用程序。您需要编写自己的WebBrowser应用程序,该应用程序将允许您拦截网页上的点击。

最新更新