Задать вопрос

Как блокировать выполнение кривого плагина для Google Chrome?

Столкнулся с проблемой, плагин www.complitly.com/ в хроме постоянно стучится к серверу по адресу site.com/undefined что создает лишнюю нагрузку на сервер.

Как можно со стороны сайта (именно сайта, а не сервера) блокировать этот плагин? Пробовал переопределять его функции в JS, но тщетно…
  • Вопрос задан
  • 3437 просмотров
Подписаться 4 Оценить Комментировать
Решения вопроса 1
azproduction
@azproduction
Можно повесить контент-зависимый хук на функции прототипа String

Плагин использует вот такую конструкцию somestring.replace(/^[^\?]+(\?)*/, ''); для каких-то своих целей

Мы можем переписать String.prototype.replace и в зависимости от аргументов выбрасывать неожиданное для него исключение (тем самым прерывать работу плагина в самом начале).
(function (){
    var realStringPrototypeReplace = String.prototype.replace;
    
    String.prototype.replace = function (what) {
        if (what.toString() === "/^[^\\?]+(\\?)*/") {
            throw new TypeError();
        } else {
            return realStringPrototypeReplace.apply(this, arguments);
        }
    };
}());


Тут проблема в том, чтобы аргументы были уникальными (чтобы что-то полезное не нарвалось на наш капкан) и смое главное, чтобы этот код запустился раньше кода плагина иначе придется искать какое-то подобное динамическое место.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
barker
@barker
Не плагин а расширение. И не думаете, что сама идея что можно блокировать расширение браузера посредством сайта абсурдна? То-то пользователи какого-нибудь AdBlock удивлялись бы постоянно.
Ответ написан
pletinsky
@pletinsky
Если речь о том, что данный плагин постоянно по какому то урлу ходит — так это может быть нормальное решение для системы поиска с автокомплитом, коей данная система является.
Так что вы все таки хотите я не понял?

… что создает лишнюю нагрузку на сервер.
На какой еще сервер создает нагрузку? Плагин постоянно пытается зайти по урлу на сервер, который вам принадлежит? Не понимаю.
Как можно со стороны сайта (именно сайта, а не сервера) блокировать этот плагин?
Чем отличается в вашей терминологии сайт от сервера?
Ответ написан
nur
@nur
создайте файл undefined и отдавайте его через nginx, на отдачу пустоты совсем не много ресурсов потребуется (я так понимаю вас 404 обработчик запускается пишет логи и ест котят)
или как то так
location = /undefined { return 200; }
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы