2012-03-19 3 views
0

나는 피싱 웹 사이트를 탐지 할 수있는 프로젝트를하고있다. 나는. 사용자가 브라우저에서 웹 페이지를 탐색 할 때 링크를 누르면 링크가 피싱 웹 페이지인지 확인합니다.사용자가 URL을 클릭하고 URL을 추출하는 것을 모니터하는 방법은 무엇입니까?

그러나 사용자가 탭 동작을 수행 할 때 URL을 클릭하면이를 인식하는 방법을 알지 못합니다.

또한 URL을 클릭해도 링크를 확인할 수 있도록 URL 형식을 문자열 형식으로 추출하는 방법은 무엇입니까?

내가 사용할 수있는 브라우저 API가없는 것 같습니다.

답변

0

기본 브라우저 응용 프로그램에 연결할 수 없습니다. 웹 페이지의 도청을 가로채는 자신 만의 WebBrowser 응용 프로그램을 작성해야합니다.

1

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> 

은 열린 우리당이 활동이 조각을 사용 얻으려면 : 기본 브라우저 응용 프로그램에 연결할 수

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

특정 이벤트에 신청서를 등록하는 것을 잊어 버렸습니다. 사용자가이 응용 프로그램을 기본값으로 선택하거나 목록에서 선택한 경우 – Mimminito

+0

@Mimminito 사실이지만 실제로는 여전히 실행 가능한 솔루션입니다. 앱이 좋은 URL이면 앱이 의도를 '전달'하도록하거나 피싱 URL로 감지되면 경고를 표시 한 다음 사용자가 계속해서 또는 종료되도록 할 수 있습니다. 어쨌든 URL을로드하기 전에 * 잡기를 원한다고 가정한다면 주위에는 다른 방법이 없습니다 (100 % 필요하지는 않지만 확실히 좋을 것입니다). – kabuko

+0

예, 현재 실행 가능한 옵션이며 지금 당장 볼 수있는 최상의 옵션입니다. – Mimminito

1

. 일부 브라우저 데이터는 콘텐츠 공급자를 통해 사용할 수 있습니다.

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가 통지를 배치 할 수 있습니다 : 다음 코드는 당신에게 사용자가 방문한 URL 목록을 얻을 것이다. 이런 식으로 은 사용자가 비표준 브라우저를 설치 했더라도에 경고해야합니다.

getContentResolver().registerContentObserver(Browser.BOOKMARKS_URI, true, new MyContentObserver(handler)); 
관련 문제