Автор оригинала: FreeCodeCamp Community Member.
Mtyás fodor.
Недавно я наткнулся на несколько сайтов, которые показали предупреждение или Paywall, потому что я использовал режим Incognito. Я думаю, что это несправедливо. Мне должно быть разрешено использовать любой браузер и режим, который я хочу. Это способ обеспечить соблюдение их инструментов отслеживания. Я знаю, что Incognito не безопасно Но это голый минимум, который вы можете сделать, чтобы избежать рекламы для отслеживания вас.
Вся вещь взяла у меня около двух часов И я многому научился о расширениях браузера и взлома клиентского кода в качестве конечного пользователя. Я думал, что это может стоить делиться.
Во-первых, я должен был посмотреть, как обнаружить личный режим. Согласно своим лучшим знаниям, нет браузера API для обнаружения частного режима напрямую, поэтому я был уверен, что это подлый маленький сценарий. Это Ответ стойки оттенки дал мне подсказку, поэтому я знал, что придется искать webkitrequestfileSystem.
. Я нашел это Бит в одном из тех частных сайтов ненавистных сайтов «заминированный код JavaScript». Вот захватывающая часть:
Я мог бы проверить модуль Вставляя его в Incognito и Public Browser Window Console и запустить:
var module = {};incognito(null, module);module.exports.detectIncognito().then(console.log)
Бинго! Это, я просто должен найти способ не вызывать ошибки обратного вызова в window.webkitrequestfileSystem (..)
Отказ Самый простой способ – это обезьяна патч функция:
(function(webkitRequestFileSystem) { window.webkitRequestFileSystem = function(t, s, success, error) { webkitRequestFileSystem(t, s, success, success); }})(window.webkitRequestFileSystem);
Если вы не знакомы с техникой, Пятно обезьяны Это способ добавить, изменить или подавлять поведение по умолчанию кусок кода во время выполнения без изменения исходного кода исходный код.
Обход 1: Сначала я начал писать свое собственное расширение Chrome, используя Расширение Отказ Это отличный инструмент, генерирующий код Chrome Extension Code. Но в итоге я нашел более легкое решение.
Всякий раз, когда дело доходит до настройки веб-сайтов, которые я использую Tampermonkey (Например Скрытие объявлений о работе на переполнении стека, когда я действительно не должен проводить время на поисках новых позиций). Вам не нужно устанавливать N + 1-й расширение, и он предоставляет хороший интерфейс для управления вашими сценариями. Хорошо, приятно, наверное, преувеличение, это некрасиво, но удобно.
Поэтому я добавил скрипт патча обезьяны, который я ссылался выше, уже хихикал, насколько легко было, но облом, это не сработало. Я попробовал несколько других вещей, например:
window.foobar = 'baz';
Но в консоли Dev это свойство отсутствовало из окно
Переменная. Оказалось Содержание скриптов работают в изолированной среде, они делятся только DOM с помощью сценариев веб-страницы. Я начал работать с ссылочным решением от этого. Была одна очень важная вещь, однако, мне пришлось выполнить этот код перед текущей страницей кода. Вот что я придумал:
function injectScript(file_path, node) { var element = document.createElement('script'); element.setAttribute('type', 'text/javascript'); element.setAttribute('src', file_path); element.setAttribute('async', false); node.appendChild(element);}injectScript(url, document.documentElement);
Обход 2: Как я начал с расширения, загрузка другого файла JavaScript была тривиальным. Однако это не так с сценариями Tamplmonkey (по крайней мере, я не знаю об этом). Поэтому я решил поставить свой код в Github Gist и попытался загрузить сырой файл . Но затем браузер жаловался на его тип MIME. Наконец я закончил использовать https://rawgit.com/ . , который был именно правильным инструментом для этого.
Я понял, что я должен добавить эти несколько строк Code Code Patch Monkey в виде строки и заполнить текст элемента скрипта с этим. Вот мое окончательное решение:
Важным, что нужно знать, если вы работаете с TamperMonkey в режиме Incognito: ваши изменения, сделанные в режиме Incognito, не появятся в обычном режиме, и наоборот: вы должны закрыть все свои личные окна, если вы хотите попробовать свои последние изменения в Общественный режим.
Будь осторожен! Если вы решили использовать свой скрипт, вы должны знать, что это может (Хотя не очень вероятно) разбить несколько веб-страниц. Вы всегда можете отключить их в Tampermonkey. Используйте его на свой страх и риск.
Оригинал: “https://www.freecodecamp.org/news/disabling-browser-incognito-check-cc84288e89b3/”