“브라우저가 오래되었습니다” 테스트는 우회할 수 있습니다

meta.discourse.org 또는 discover.discourse.com에 대한 최신 체크가 Firefox 115.27.0 등에서 모던 모드(moder mode)로 페이지를 표시하지 않기 위해 사용되고 있다는 것을 알게 되었습니다. 그러나 이 체크는 uBlock Origin, AdGuard, 또는 심지어 AdBlock/AdBlock Plus를 통해 우회될 수 있습니다:

! 네 가지 중 하나만 있으면 충분합니다:
meta.discourse.org##+js(aopw, unsupportedBrowser)
! 덜 안정적입니다:
meta.discourse.org##+js(set, unsupportedBrowser, undefined)
meta.discourse.org##+js(set, unsupportedBrowser, false)
meta.discourse.org##+js(set, unsupportedBrowser, '')
! set-constant 버전을 사용할 때, 수십 번의 보기 중 한 번 정도 레이스 모드(race mode)가 발생할 수 있으며, 이는 콘텐츠 차단기가 의존할 때 실패하게 만들고, 단순화된 HTML에서 올바른 미리보기가 활성화되도록 합니다.
  • aopw = abort-on-property-write[1]
  • set = set-constant[2] (AdBlock과 ABP의 경우 override-property-read)

아마 더 안전한 방법을 사용해야 하지 않을까요? 현재 눈에 띄는 단점 중 하나는, 이 트릭을 사용할 때 답글이나 도입부에 삽입된 각주(footnotes)가 확실히 작동하지 않는다는 것입니다(아마도 CSS(상대적 색상 구문(Relative Colour Syntax)에 대한 알려진 문제 제외)이나 너무 새로운 JS를 사용 중일 수 있음).


  1. Resources Library · gorhill/uBlock Wiki · GitHub #abort-on-property-writejs- ↩︎

  2. Resources Library · gorhill/uBlock Wiki · GitHub #set-constantjs- ↩︎

죄송합니다, 조금 더 자세히 설명해 주시겠어요?

말씀하신 것은 구형 브라우저에서 uBlock Origin을 기본적으로 설치하면 우리의 검사를 우회할 수 있다는 뜻인가요?

1개의 좋아요

I will add STR:

  1. Firefox 115.27.0에서 공식 스토어에서 uBlock Origin을 설치하십시오. Firefox 애드온용 Manifest V2 API에는 사람들이 구형 uBO 버전을 유지하도록 만들 만한 주요 새 기능이 없기 때문입니다. (다른 광범위한 콘텐츠 차단기에서는 단계가 유사하며, 내 필터 탭의 이름이 다를 수 있습니다.)

  2. 설정으로 이동하여 “My Filters” 탭을 선택하십시오.

    • 이 시점에서, 기본 목록 중 어느 것도 쉼표가 긴 목록을 가진 스크립틀릿을 추가하는 것을 감히 하지 않았다는 점을 지적하고 싶습니다. 오히려, "시도하고 실패"를 통해 JavaScript의 기초를 아는 소수의 엘리트만이 같은 일을 할 수 있을 정도로 난이도가 그리 높지 않습니다.
  3. 4가지 제안 중 하나를 붙여넣으십시오. (4가지 필터 모두의 단순함은 저보다 최소 하루 전에 누군가가 그것들을 생각해 냈기 때문에 저자권을 보호할 가치가 없다는 것을 의미합니다.)

    • 아직 “구독하고 잊기” 목록이나, “설치하고 잊기” 모드에서 같은 일을 하는 Tampermonkey/Violentmonkey/Greasymonkey용 스크립트가 없거나, 커뮤니티나 자원봉사자가 목록이나 스크립트의 지속적인 업데이트를 관리할 것이라고 가정합니다.
  4. 포럼을 열거나 새로고침하면, 페이지가 단순화된 HTML이 아닌 "모던"한 외관으로 로드됩니다. (set-constant 기반 버전을 선택할 때 레이스 컨디션이 발생하지 않는 경우)

    • 제가 쓴 대로, 유일한 눈에 띄는 오작동은 각주가 제대로 작동하지 않는 것입니다. (이것이 유일한 실패한 “상대적 색상 문법” 테스트가 아니므로, 버블의 크기가 거의 제로이고 단순히 보이지 않는 텍스트가 아니라, 상대적으로 색칠되었다면, 웹사이트 디버깅에 대해 충분히 알지 못해 무엇이 부족한지 결정할 수 없습니다.)

    • 로그인 메커니즘이 로그인 실패를 방지하기 위한 추가적인 보안 조치가 있는지, 또는 포럼 관리자가 잠금을 해제해야 한다고 표시된 계정인지를 테스트하지 않았습니다.

      • 포럼에 사용자가 로그인하는 것을 방지하기 위한 브라우저 고유성 지문 테스트가 없는 경우, 필요한 쿠키/localStorage/sessionStorage를 이전하여 추가적인 로그인 보안 조치를 우회할 수 있는지, 또는 로그인한 사용자를 위한 기능 중 일부도 깨져 있는지 확인하지 않았습니다.

아마도 광범위한 스펙트럼의 콘텐츠 차단기의 스크립틀릿/spinnet에 보이지 않는 "익명 함수"로 "글로벌 변수"를 감싸는 것으로 충분할 것입니다. 동적 이름의 아이디어, 예를 들어 CDN 수준에서 24시간마다 변경되는 것이 인프라에 너무 비용이 많이 든다면요.

더 긴 전환 기간 동안 덜 공격적인 경고 바를 헤더 내비게이션 아래에 두는 대신 단순한 HTML 시스템 뷰를 구현한 다른 포럼으로는 forum.fxsound.com이 있으며, 거기에서는 apow/set-constant도 현재 작동합니다.