Chrome에서 웹 사이트를 내 검색 엔진 목록에 자동으로 추가합니까?


121

특정 웹 사이트 (예 : Stack Exchange 사이트, Dell 등)가 Chrome의 검색 엔진 목록에 자동으로 추가되는 것으로 나타났습니다.

그들은 심지어 자신의 항목에 키보드 단축키를 추가합니다. 여기 몇 가지 예가 있어요.

  • Dell : 키보드-> Dell.com
  • Exchange 웹 마스터 스택 : 키보드-> webmasters.stackexchange.com
  • 로이터 : 키보드-> reuters.com

Q1 : 이것이 Chrome의 기본 동작입니까? (웹 사이트가 검색 엔진 목록에 추가되도록 하시겠습니까?)

Q2 : Chrome에서이 동작을 비활성화 할 수 있습니까?

참고 : Windows 7 64에서 최신 버전의 Chrome : 11.0.696.57을 실행 중이며 Google URL 단축기 하나의 확장 프로그램 만 설치되어 있습니다.


33
@ Sathya, 왜? 유연하게 비활성화하고 싶습니다. 귀하의 질문에 대해 다음과 같은 기능을 비활성화하십시오 . 검색 엔진을 편집하는 인터페이스는 특히 좋지 않으며 목록이 커짐에 따라 수동으로 추가 한 검색 엔진과 자동으로 추가 된 검색 엔진을 구별하기가 어렵습니다. 큰 목록에서 특정 항목을 찾기가 더 어렵습니다.
Amelio Vazquez-Reina

16
@Sathya-여러 가지 이유 : * 편리 성 : 때때로 해당 사이트가 아닌 사이트에 대해 검색하려고합니다. 일관성 : 새로운 "검색 엔진"을 무작위로 자동 추가하면 검색 주소창에서 예기치 않은 동작이 발생합니다. * 개인 정보 보호 : Chrome은 새로운 '검색 엔진'을 추가하기로 결정할 때 알려주지 않으며 인터넷 사용 기록을 삭제해도 사라지지 않습니다. * 일반적인 예의 :이 '기능'사용 여부를 결정하거나 실패한 경우 적어도 Chrome에서 사이트를 추가하기로 결정하면 알림을 받도록 선택할 수 없어서이 결정에 대응할 수 있습니까?
phenry

1
내 브라우저가 알아야 할 검색 엔진을 스스로 결정할 자격이없는 것 같습니다.
Anders Lindén

답변:


34

@ 10basetom의 코드와 @shthed에서 영감을 받아 맞춤 검색 엔진을 추가하지 마십시오 . Chrome 확장 프로그램을 출시 했습니다.

소스 코드는 여기에서 찾을 수 있습니다 .

당신이 무슨 생각을하는지 제게 알려주세요!


1
@ O'Rooney 감사합니다! 일부 사이트는 때때로 확장 기능이 저하되는 것을 볼 수 있지만 거의 매주 "퍼지"를 수행하는 것보다 한 달에 몇 개의 검색 엔진을 청소하는 것이 훨씬 좋습니다 ... 건배!
Greg Sadetsky

4
실제로는 더 이상 작동하지 않습니다. 많은 맞춤 검색 엔진이 여전히 추가됩니다.
onnodb

1
@onnodb는 고맙지 만, 불행히도 확장 프로그램을 업데이트 할 시간이 충분하지 않았습니다.
Greg Sadetsky

1
@onnodb, Greg, 당신은 (또는 다른 관심있는 사람) 이 포크 를 사용해보십시오 ? .../src포장을 풀고 포장을 푼 확장 장치 로로드하십시오 . 어떻게되는지 알려주세요. 감사!
cxw

3
다수의 기여자들의 많은 노력 덕분에 확장 기능이 훨씬 향상된 탐지 / 차단 알고리즘으로 업데이트되었습니다! 이전에 잘 작동하지 않았다면 미리 알려주십시오. 건배
그렉 Sadetsky

61

이것은 나를 미치게 만들었 기 때문에 문제에 대한 해킹이지만 효과적인 해결책을 찾았습니다.

Chrome은 검색 엔진을 간단한 sqlite3 데이터베이스에 저장합니다. 크롬이 데이터베이스 삽입 명령문을 무시하게하는 검색 엔진을 추가 할 때 트리거를 생성 할 수 있음을 발견했습니다.
검색 엔진은 여전히 ​​메모리에 유지되므로 브라우저가 다시 시작될 때까지 목록에 계속 표시됩니다 . 그러나 항상 지우지 않아도되므로 자신의 검색 엔진을 추가하려는 경우 실수로 삭제하는 것에 대해 걱정할 필요가 없습니다 (예, 수동으로 검색 엔진을 추가해도 여전히 작동합니다).

먼저 Web data파일을 찾아야 합니다.

  • 맥 OS X: ~/Library/Application Support/Google/Chrome/Default/Web Data

  • XP : C:\Documents and Settings\<username>\Local Settings\Application Data\Google\Chrome\User Data\Default\Web Data

  • Vista / 7 : C:\Users\<username>\AppData\Local\Google\Chrome\User Data\Default\Web Data

  • 리눅스 : ~/.config/google-chrome/Default/Web Data또는~/.config/chromium/Default/Web Data

그런 다음 sqlite3 편집기로여십시오.

이 시점에서 Chrome을 종료해야합니다.

공식 sqlite 웹 사이트에는 다양한 운영 체제를 위해 사전 컴파일 된 명령 줄 유틸리티 가 포함 된 다운로드 페이지 가 있습니다. sqlite3 데이터베이스로 작업 할 수있는 편집기가 작동하지만.

명령 행 유틸리티의 경우 다음과 같은 명령을 사용하십시오 (파일 이름에서 공백을 이스케이프하거나 인용하는 것을 잊지 마십시오).

sqlite3 /path/to/Web\ Data

트리거를 추가하십시오.

키워드를 삽입하기 전에 트리거 TRUEGER no_auto_keywords (NEW.originating_url이 NULL이 아니며 NEW.originating_url! = '') BEGIN SELECT RAISE (IGNORE); 종료;

끝났습니다. 편집기를 닫고 크롬 백업을 시작하십시오.


그것이 작동하는 방식은 크롬이 검색 엔진을 keywords테이블 에 자동 추가하기 위해 갈 때 크롬이 originating_url필드를 원래 웹 사이트로 설정한다는 것입니다. 트리거는 기본적으로 비어 있지 않은 originating_url필드가 있는 삽입을 찾고 RAISE(IGNORE)명령문을 자동으로 건너 뛰도록 하는 을 발행합니다 .
수동으로 추가 한 검색 엔진에는이 없으므로 originating_url트리거를 통해 추가 할 수 있습니다.


2
몇 명의 편집자를 시도한 후 SQLiteStudio가 가장 좋아합니다. 이 제품과 관련이 없습니다. 검색 후 찾은 유용한 도구입니다.
mateuscb

1
이것은 훌륭하고 작동합니다. 그러나 나를 위해 Chrome은 데이터베이스가 아니라 다른 폴더 인 '동기화 데이터 백업'에 검색 엔진을 추가했습니다. Windows / Linux에서 해당 폴더에 대한 쓰기 권한을 비활성화하면 제대로 사라집니다.
Martin Hansen

적어도 Chrome v47beta에서는 더 이상 작동하지 않는 것 같습니다. Chrome을 다시 시작한 후에도 키워드를 입력해도 더 이상 자동 추가 검색 엔진이 목록에 표시됩니다.
thdoan

참고 : 1 /이 파일을 엉망으로 만드는 경우를 대비하여 먼저이 파일의 사본을 만드십시오 :) 2 1 Mac 10.11.4 (El Capitan) sqlitebrowser.app ( "Error: unable to open database "~/Library/Application Support/Google/Chrome/Default/Web Data": unable to open database file)로 파일 / 데이터베이스를 열 수 없습니다 . 3 / CREATE TRIGGERChrome이 열려있는 동안 명령을 실행하려고 하면 Error: database is locked먼저 Chrome을 종료해야합니다. 크롬 번 / 닫았 네,이 데이터베이스가 성공적 일 열 : /Volumes/Macintosh\ HD/Applications/sqlite3 ./Web\ Data(에 Terminal, 때 지정한 디렉토리) HTH
sming

id> 2 인 키워드에서 삭제를 시도했습니다. Google은 서버에서 다시 동기화합니다. 이미 수천 개의 검색 엔진을 설치 한 후 너무 늦었다 고 생각합니다.
Qi Fan

34

이를 수행하는 두 가지 방법이 있습니다.

  1. 이 사용자 스크립트를 Tamper Monkey에 추가하십시오 .

    var elOpenSearch = document.querySelector('[type="application/opensearchdescription+xml"]');
    if (elOpenSearch) elOpenSearch.remove();
  2. 일반 Tamper Monkey 사용자가 아니며이 목적으로 Tamper Monkey 확장을로드하기 위해 15-20MB의 RAM을 낭비하고 싶지 않다면 메모리를 소비하지 않는 자체 경량 확장을 롤백 할 수 있습니다 . 지침이 아래에 제공됩니다.

OpenSearch <link>태그 를 제거하고 Chrome이 검색 엔진을 자동 추가하지 못하게 하는 확장 프로그램을 만드는 방법 :

  1. 확장 파일을 넣을 폴더를 만듭니다.

  2. 이 폴더 안에는라는 두 개의 텍스트 파일 생성 manifest.jsoncontent.js아래에 제공된 코드를 포함합니다.

    manifest.json

    {
      "manifest_version": 2,
      "name": "Disable OpenSearch",
      "version": "1.0.0",
      "description": "Remove the OpenSearch <link> tag to prevent Google Chrome from auto-adding custom search engines.",
      "content_scripts": [
        {
          "matches": ["<all_urls>"],
          "js": ["content.js"]
        }
      ],
      "permissions": [
        "http://*/*",
        "https://*/*"
      ]
    }

    content.js

    var elOpenSearch = document.querySelector('[type="application/opensearchdescription+xml"]');
    if (elOpenSearch) elOpenSearch.remove();
  3. Chrome에서 chrome://extensions/(URL 표시 줄에 입력) 로 이동 하십시오.

  4. 개발자 모드를 활성화하십시오.

  5. '포장 풀린 확장명로드'를 클릭하고 1 단계에서 생성 한 폴더를 선택한 다음 '확인'을 클릭하십시오.

축하합니다! 이제 Chrome은 :-)를 사용하는 것이 조금 덜 성 가실 것입니다.

제한 사항 : 이 솔루션은 100 % 신뢰할 수 없습니다. 검색 매개 변수가 포함 된 URL (예 : https://cdnjs.com/#q=fastclick )로 이동하면 드물지만 사용자 정의 검색 엔진이 추가됩니다. <link>사용자 스크립트 또는 확장 프로그램이 DOM에서 태그를 제거하기 전에 Chrome에서 OpenSearch 태그를 구문 분석 할 수 있기 때문 입니다.


2
나는 아무도 이것을 상점의 공식 확장으로 게시하지 않은 것에 놀랐습니다. 인기가있는 것 같습니다. 이상적으로는 검색 엔진을 추가하기 전에 나에게 물어 보는 확장 프로그램을 원하거나 주소 표시 줄에 RSS 피드와 같이 추가 할 수있는 아이콘이 있습니다.
ryanmonk

7
훌륭한 코드에 감사하고 영감을 얻은 @shthed 감사합니다! 방금 Chrome 확장 프로그램을 출시했습니다. 여기에서 찾을 수 있습니다 . 소스 코드는 여기에 있습니다 . 당신이 무슨 생각을하는지 제게 알려주세요! :-)
Greg Sadetsky

@GregSadetsky 답변으로 게시하고 투표 할 수 있습니다 :)
O'Rooney

24

2
나는이 답변을 좋아한다. 이것은 간단하지만 유익한 정보입니다
nXqd

8
그러나 다른 답변이 설명하는 것처럼 비활성화 할 수있는 방법이 있습니다 :)
Enrico

6
"예, 이것은 의도적으로 설계된 것입니다." 문제에 대한 사용자 입력없이 시스템에 자동으로 항목을 추가하는 것은 열악하고 부적절한 디자인입니다. 악성 웹 사이트가이를 쉽게 이용할 수 있습니다. "아니요, 이것을 비활성화 할 방법이 없습니다." 분명히 소프트웨어 일 때는 항상 방법이 있습니다. 게으르고 없다고 말하는 것은 해결책이 아닙니다. 이 답변을 제거하고 작가는 경고했다.
Alex Summers

캐시가 지워진 후 내 사용자 설정 검색 엔진이 손실되었습니다. 몇 시간 동안 일부 사이트를 열었지만이 엔진은 돌아 가지 않았습니다. 다시 가져 오는 방법을 알고 있습니까? (수동으로 너무 많이 추가하고 싶지는 않습니다)
Mithril

이 잘못된 대답은 upvoted됩니다. 삭제하거나 수정하여 수정해서는 안됩니까?
Santropedro

10

여기에 나를 위해 잘 작동하는 다소 해킹 된 해결 방법이 있습니다. 검색 별칭의 이름을 "§ $ %! / () & /" 와 같은 암호로 바꾸십시오 . 검색 엔진이 여전히 존재하지만 다시는 볼 수 없습니다. 크롬이 젠킨스에서 검색하도록 강요하기 때문에 "jenkins"를 구글에서 검색 할 수 없다면 꽤 성가시다.


진지하게-미친 성가신. 팁 고마워.
TJ Biddle

2
그것은 나에게이 작업을 수행 jenkins, jira그리고 confluence그것은 내가이 세 가지에 관련된 아무것도 내 주소 표시 줄에서 일반 검색을 시작할 수 없습니다 내게 절대적으로 미치게 -. 이것은 지금까지 내가 본 최고의 유일한 해결 방법입니다. 건배.
Matt Clark

1
@MattClark jira정확히! jira가 아니라 jira를 검색하고 싶습니다!
ErikE

귀하의 경우 어떻게 행동합니까? 나를 위해 사이트 에서 검색 시작하려면 키워드를 검색 주소창에 Tab 키를 눌러 입력해야합니다 . 그런 다음 현장 검색 으로 변경되고 검색 문자열을 계속 입력 할 수 있습니다. 키워드 또는 키워드가 포함 된 문자열 만 검색하려면 키워드 Space , 나머지 검색 문자열을 입력 하고 Enter 를 누르면 기본 검색 엔진을 사용하여 검색합니다. 따라서 서로 방해하지 않습니다. 그냥 사용 공간을 기본 검색 엔진 및 사용하여 검색하는 키워드 후 탭을 사이트에서 검색 할 수 있습니다.
Dawid Ferenczy Rogožan

@DawidFerenczy : 그것은 우리의 나머지 사람들에게는 그것이 작동하지 않습니다. 공간은 여전히 ​​해당 검색 엔진을 사용합니다. 나는 입력 git한 다음 공백을 입력하면 즉시 git의 검색 엔진을 사용하도록 변경됩니다 (수 많은 시간을 제거했습니다).
Gerrat

9

이 간단한 사용자 스크립트를 사용해보십시오.

// ==UserScript==
// @name       Block Opensearch XML specs
// @namespace  *
// @version    0.3
// @description  Block opensearch xml links
// @match      *
// @copyright  2012+, Christian Huang
// ==/UserScript==

var i;
var val;
var len;
var opensearches;

opensearches = document.getElementsByTagName('link');
len = opensearches.length;
for (i = 0; i < len;i++) {
    val = opensearches[i].type;
    if ( val == "application/opensearchdescription+xml") {
        opensearches[i].parentNode.removeChild(opensearches[i]);
    }
}

1
이 스크립트를 어디에 추가합니까? 아니면 그것을 실행?
mateuscb

2
@mateuscb 여기 에서 얻을 수 있습니다 . 그런 다음 chrome : // extensions /의 확장 프로그램 설정 페이지에서 스크립트를 삭제하십시오.
Victor Häggqvist 2014 년

이. 입니다. 대박. 나는 manifest.json( 이 SO 답변에 따라) 더미를 만들어야하고 dev 모드를 통해 (포장되지 않은 확장으로) 설치해야했지만 그 외에는 대우처럼 작동했습니다.
Junmble

1
또는 Tamper Monkey에서 사용할 수 있습니다. 웹 사이트를 수정하는 데 익숙하다면 TM은 필수 애드온이어야합니다.
JasonXA

이 1 라이너를 사용할 수도 있습니다 document.querySelector('[type="application/opensearchdescription+xml"]').remove();(아래 내 답변 참조).
thdoan

9

많은 수의 검색 엔진을 빠르게 제거하려면 chrome : // settings / searchEngines로 이동하여 Ctrl-Shift-J (OSX의 Opt-Cmd-J)를 눌러 Javascript 콘솔에 들어가서 다음을 붙여 넣으십시오.

settings
    .SearchEnginesBrowserProxyImpl
    .prototype
    .getSearchEnginesList()
    .then(function (val) {
        val.others.sort(function (a, b) { return b.modelIndex - a.modelIndex; });
        val.others.forEach(function (engine) {
            settings
                .SearchEnginesBrowserProxyImpl
                .prototype
                .removeSearchEngine(engine.modelIndex);
        });
    });

모든 것을 지우려면 몇 번 붙여 넣어 실행해야 할 수도 있습니다.


내가 가지고있는 100 개 이상의 항목을 제거하려면 이것을 dev-console에 약 10 번 복사 / 붙여 넣어야했습니다. 한 번의 클릭으로 북마크를 만드는 방법을 알고 싶습니다.
jiggunjer

1
위에서 아래로 작업 할 때 항목이 삭제 될 때마다 값이 재설정되므로 (일반적으로 현재 목록의 절반 정도만 삭제합니다) 모델 목록을 기준으로 목록을 역순으로 정렬하도록 목록을 수정했습니다. 아래에서 위로 작업 할 때이 문제가 발생하지 않습니다.
알코올

첫 번째는 한 번의 실행으로 이것이 가능하다는 것을 알았습니다! 명성.
bnieland

Chrome 버전 64.0.3282.186 (공식 빌드) (64 비트)의 Windows 10 버전 1709 설치에서 한 번의 작업으로 작업했습니다.
JosephHarriott

7

당신이 올바르게 묘사 한 것을 이해하고 있다면, 이것은 웹 사이트가 전혀하지 않습니다. Chrome 자체는 웹 사이트에서 검색 창을 식별 한 다음 검색 주소창의 검색 옵션 목록에 검색 창을 추가합니다.

A1 : 그렇습니다. 기본 동작이지만 웹 사이트 자체를 추가하는 것이 아니라 Chrome이 웹 사이트를 추가하는 것입니다.

대답 2 :이 동작을 비활성화 할 수는 없지만 도구 메뉴-> 옵션-> 검색 엔진 관리로 이동하여 검색 엔진을 제거 할 수 있습니다. '기타 검색 엔진'에 표시됩니다. 제거 할 때 다시 추가하지 않도록 지정할 수 있습니다. 확실하지 않습니다.이 기능이 마음에 들기 때문에 제거하지 않을 것입니다.


@Kromey에게 감사합니다. 좋은 지적입니다. 귀하의 의견을 반영하여 질문을 방금 업데이트했습니다.
Amelio Vazquez-Reina

1
이 답변은 올바르지 않습니다. 웹 사이트는 Chrome에서 웹 사이트의 검색 엔진을 브라우저가 인터페이스 할 수있는 Chrome의 검색 엔진 목록에 추가 할 수 있도록 OpenSearch 설명 문서 를 사용 하므로 효과적으로 자신을 Chrome 에 추가합니다.
Marcel

@Marcel OpenSearch는 사이트 가 검색 기능을 설명 할 수 있도록합니다. 여전히 브라우저가 그에 따라 행동해야합니다. 따라서 이것은 정확하지 않습니다. 단지 웹 사이트의 검색 창을 식별하는 데 사용되는 기술 사양을 포함하지 않았습니다. -브라우저가 검색 창을 찾는 방법의 정확한 메커니즘은 일반 사용자와 관련이 없으며 검색을 추가하려는 웹 마스터에게만 해당됩니다.
Kromey

7

내가 찾은 한 가지 해결 방법은 공백으로 모든 검색을 시작하는 습관을 얻는 것입니다. ・Splunk median( 공백 문자를 나타내는) 를 입력하면 Chrome에서에 Google 검색을 수행합니다 Splunk median.


2
물음표 (?)로 검색을 시작하면 기본 검색 엔진도 사용됩니다.
Ari

좋은! 나는 공간보다 더 좋아.
Jun-Dai Bates-Kobashigawa

1
나를 위해 그것은 작동하지 않았다. Chrome 39, Win 7에서 스페이스 키워드를 입력해도 검색 인터페이스가 나타나지 않았습니다. 그러나 솔루션은 명명의 다른 곳에서 유용했습니다. 정의 된 검색을 자동화 된 검색 위에 표시하려면 이름 앞에 공백 하나를 두십시오. 모든 자동 검색 엔진이 아래에 있으며 이제 관리 및 제거가 더 쉽습니다.
JasonXA

ctrl + k를 누르면 해당 동작이 나타납니다.
jiggunjer

6

<-배경->

나는 당신을 위해 대안적이고 덜 방해가되는 아이디어를 가지고 있습니다 (적어도 우리 중 많은 사람들이 우리의 정신 건강을 위해 광고 차단기를 실행하고 있다면). 나는 하나의 기능 (최악의 시나리오)에 대한 전체 확장의 팽창을 피하기 위해 가능한 한 기존 확장 / 스크립트를 사용하는 것을 좋아 하므로이 솔루션은이 원칙에 따라 작동합니다.

Adblock과 그 변종 / 후임자 (uBlock은 내가 선택한 무기 임) <link>는 자동 검색을 허용하는 정보가 포함 된 XML 파일 인 OS (OpenSearch Descriptions)의 자동 검색에 사용되는 요소를 포함한 웹 페이지 요소를 차단할 수 있습니다. -검색 엔진을 추가하면 이러한 두통이 발생합니다. 필자의 연구 결과에 따르면 Firefox는 단순히이 정보를 읽고 Chrome처럼 자동으로 추가하는 대신 검색 엔진 드롭 다운 상자에서 쉽게 추가 할 수 있도록하기 때문에 "허용"이라고 말합니다.

이 기능의 사용은 Opensearch 사양에 여러 곳에서 설명되어 있습니다.

http://www.opensearch.org/Specifications/OpenSearch/1.1#Autodiscovery_in_RSS.2FAtom (사용중인 예제 일 뿐이므로이 섹션의 특정 미묘한 부분은 무시하십시오)


<-해결책->

OpenSearch Descriptions (OSD)에는 고유 한 유형이 있으므로 다음 AdblockPlus / uBlock 규칙을 사용하여 필터링 할 수 있습니다.

##link[type="application/opensearchdescription+xml"]

나는 이것을 테스트했고 규칙은 내 테스트 사이트 (filehippo.com 등)에서 정확한 일치를 표시하고 검색 엔진은 더 이상 자동 추가되지 않으므로 이것이 완전한 솔루션이라고 생각합니다.


내가 찾은 이력에 대한 간단한 참고 사항 : Chromium의 엔지니어는 지난 몇 년 동안이 "WontFix"레이블을 여러 번 (파워 사용자 비활성화 옵션 / 플래그가 여러 번 요청 됨) 표시했습니다. 기능은 "일반적으로 유용합니다", 그들의 입장은 틈새 문제는 셀 수없이 많은 플래그 등을 추가하는 개발자가 아닌 확장 또는 타사 스크립트로 해결해야한다는 것입니다. 따라서 기본적으로 여기서 수행하는 작업은 자신의 취향에 맞게 관리하고 멋지게 유지합니다.

행운을 빕니다! 다른 사람이 이것을 시도하면 어떻게 작동하는지 알려주세요!


1
이것은 나를 위해 작동하지 않았습니다 ( cdnjs.com에서 검색 하십시오 ). 100 % 신뢰할 수있는 솔루션이 없다는 결론에 도달했습니다. (
thdoan

이 날 중 하나를 작동하지 않습니다 - 내가 검색하면 4inkjets.com 그것은 검색 엔진으로 추가됩니다 (이상하게도, 나는 찾을 수없는 application/opensearchdescription+xml페이지에 링크를.)
이반 Kozik
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.