특정 사이트에서 '개체 차단'허용


8

NoScript FireFox 플러그인이있는 특정 사이트에 대해 글꼴을 포함한 "차단 된 개체"를 허용하고 싶습니다.

NoScript가 글꼴을 차단 하는 이유를 이해 하지만 신뢰할 수있는 일부 웹 사이트에서는 글꼴 을 허용하고 싶습니다.

한 도메인에서만 스크립트를 허용하는 방법ABE 매뉴얼 외에 특정 스크립트를 활성화 하는 방법을 읽었습니다 . 그러나 나는 그것을 작동시킬 수 없다. 다음은 Toggl에서 시도한 몇 가지 ABE 규칙입니다.

Site .gstatic.com .bootstrapcdn.com
Accept from .toggl.com

Site fonts.gstatic.com maxcdn.bootstrapcdn.com
Accept INCLUSION(SCRIPT, OBJ, CSS) from .toggl.com

Site fonts.gstatic.com maxcdn.bootstrapcdn.com
Accept from .toggl.com

그러나 이러한 규칙 세트 중 어느 것도 Toggl에 글꼴을 포함 할 수 없습니다. 내가 어디로 잘못 가고 있는지 알아?

(FireFox 34.0.5의 NoScript 2.6.9.6rc3)

답변:


5

NOSCRIPT 사이트 상태 :

예를 들어, noscript.allowedMimeRegExp환경 설정 값을

  • FRAME@https?://somesite\.com
  • FONT@https?://some-other-site\.com
  • WebGL@https://www\.khronos\.org

somesite.com의 FRAME / IFRAME로드, some-other-site.com의 웹 글꼴 및의 WebGL 3D 컨텐츠를 영구적으로 허용합니다 https://www.khronos.org.

ABE가 할 수 있다고 생각하지 않습니다. 특정 사이트 / 도메인에서만 글꼴을 활성화하는 한 가지 해킹 된 방법은 Vimperator / Pentadactyl을 사용하고 LocationChange 이벤트에서 MimeRegExp 설정을 자동으로 변경하는 것입니다. 페이지를 떠날 때 설정을 되돌리려면 .vimperatorrc 에서이 간단한 함수 ( Anekos 에서 가져옴 )를 사용하여 표정이 마이너스 인 표현식을 사용합니다.

js <<EOM
function add_AutoCommand(URI, onEnter, onLeave) {
    let entered = false;
    autocommands.add('LocationChange', '(?!' + URI + ')', function () {
      if (entered) {
        entered = false;
        onLeave();
      }
    });
    autocommands.add('LocationChange', URI, function () {
        onEnter();
        entered = true;
    });
}
add_AutoCommand(https?://allow-font-on-this-site\.com, 
    :set! noscript.allowedMimeRegExp="FONT@https?://some-other-site\.com", 
    :set! noscript.allowedMimeRegExp=" "
);
EOM

나는 이것을 테스트하지 않았지만 나는 할 것이다.

편집 : 그것은해야한다

add_AutoCommand('https?:\/\/allow-font-on-this-site\\.com.*', 
    function(){options.setPref("noscript.allowedMimeRegExp",
        "FONT@http://fonts.gstatic.com")}, 
    function(){options.setPref("noscript.allowedMimeRegExp", 
        "")}
);

...하지만 페이지를 다시로드하지 않으면 noscript가 환경 설정에서 선택되지 않으므로 수동으로 다시로드하거나 사용하십시오. tabs.reload(config.browser.mCurrentTab, false);

LocationChange가 다시로드를 다시 실행 (루핑)하지 않도록 부울과 시간 초과를 설정해야합니다. 아마도 PageLoadPre 이벤트의 다른 autocmd가 부울에 사용될 수 있습니다. 이것은 내가 아는 추악한 것입니다. 죄송합니다.

추신. 간단한 URL 기반 pref 전환의 더 유용한 응용 프로그램은 분명히 다운로드 디렉토리를 변경하는 것입니다.

편집 (2017) : uBlock Origin 을 사용하면 특정 유형의 html 객체, 파일 또는 비헤이비어를 구체적으로 타겟팅 할 수 있습니다.

정적 규칙과 동적 규칙 모두 도메인 / URL에 원본을 허용하도록 지정합니다. 나는 이것을 몇 년 동안 사용 해왔다. 유형에는 글꼴 뿐만 아니라 인라인 스크립트 , 스타일 시트 , 이미지 , 객체 , 스크립트 , xmlhttprequest , sub_frame , 미디어 , 웹 소켓 , 팝 언더팝업이 포함 됩니다.

예제 규칙 :

* * 3p block
no-remote-fonts: * true
no-remote-fonts: allow-font-on-this-site.com false
allow-font-on-this-site.com font-cdn.org noop

어떤 의미:

  1. 어느 페이지에서나 제 3 자 요청을 차단
  2. 어느 페이지에서나 서드 파티 글꼴 차단
  3. 도메인의 페이지에서 서드 파티 글꼴을 다시 활성화하십시오. 어디에서나 allow-font-on-this-site.com
  4. 선택적으로 도메인 font-cdn.org의 출처에 대한 요청을 페이지에서 다시 활성화하십시오.

noop ( 'no operation')을 사용하면 정적 규칙 필터링 (일반적으로 광고 차단 또는 악성 광고 목록으로 알려진 분산 규칙에 정의 됨)이 적용됩니다.


1
철저한 답변과 답변 해 주셔서 감사합니다.
Jura
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.