[javascript] 웹 사이트는 자신이 기본 홈페이지 나 검색 공급자가 아님을 어떻게 알 수 있습니까?

내가 아는 한 브라우저의 기본 홈페이지 / 검색 공급자에 대한 공개 API 노출은 없습니다. 그렇다면 Google은 이것을 표시하는 방법을 어떻게 압니까? Google이 내 브라우저의 기본 홈페이지 / 기본 검색 공급자가 아닌 경우에만 나타납니다.

Google 페이지 팝업 : 'Google에 더 빨리 접속하세요.  기본 검색 엔진을 Google로 전환하십시오. '
Googe on-page 팝업 : '자주 오세요?  Google을 홈페이지로 만드십시오. '

리퍼러와 같은 수많은 변수에서 추론하고 있다고 가정 할 수 있습니다. 나는 구글의 컴파일 된 자바 스크립트를 성공적으로 파헤칠 수 없었다. 나는 그것이 클라이언트 측 또는 서버 측에서 감지되는지 확실하지 않습니다.

저는 Firefox 44를 사용하고 있지만 Chrome에서도 이러한 배너를 본 적이 있습니다.



답변

간단하게이없는 방법 “기본 검색 / 홈페이지의”사용자의 취향이며없이 그에 액세스 할 수 없기 때문에 자바 스크립트로 그렇게 할 수있는 사용자의 권한 이이 일 것이기 때문에 보안 / 개인 정보 보호 문제를 해결합니다.

사용자가 방문 할 때마다 Google은 닫기 아이콘이있는 프로모션 광고와 기본 홈페이지로 설정하는 방법에 대한 지침이있는 이동 버튼을 표시합니다. 그중 하나를 클릭 하면 다음 번에 쿠키를 확인하고 프로모션이 사라지도록 2 개의 쿠키가 생성 됩니다. Google이 귀하의 홈페이지이고 귀하가 쿠키를 삭제하더라도 Google을 귀하의 홈페이지로 홍보하기위한 배너가 여전히 존재합니다.

나는 Chrome을 인식하지 못하는 Firefox로 이것을 확인했습니다.


답변

Google이 정확히 무엇을하는지 모르겠지만 무엇을해야하는지 :

  • 특별한 매개 변수로 홈페이지 URL을 설정하고 확인하십시오- ‘ http://www.example.com/#!homepage (거짓 음성 방지)
  • Referer필드 확인 :
    • 없는 경우 사용자가 수동으로 입력했다고 가정합니다.
    • 각 사용자 방문에 대해 매우 유사하다면 (아마도 브라우징 세션의 시작처럼 보이는 것-eeevery 페이지의 GA를 통해 추론 됨) 사용자가 항상 어딘가에서 클릭하여 여기로 온다고 가정합니다.
  • 쿠키 설정 (예 : visitedHelpAboutHomePage사용자가 “예, 표시”페이지를 방문 할 때) (위음성을 방지 할 수 있지만 위양성을 생성 할 수도 있음)

“특수 매개 변수”는 “검색 창에서 시작된 검색”시나리오에서 sourceid발생합니다. “검색 소스”를 의미 할 가능성 이있는 매개 변수 가 있습니다.


답변

내 Firefox (v42)에서 “자주 방문 하시겠습니까?” Google을 기본 검색 공급자로 설정 한 경우에도 상자가 나타납니다.

Safari에서 “웹을 탐색하는 더 좋은 방법 : Google 크롬 다운로드”라는 상자가 동일한 위치에 표시됩니다.

Opera와 Chrome에서는 기본 검색 공급자를 Google이 아닌 다른 공급자로 변경하더라도 상자가 전혀 표시되지 않습니다.

그래서 저는 그들이하는 일은 UserAgent 객체를 사용하여 JavaScript에서 브라우저를 감지하는 것이라고 생각합니다.


답변