Есть ли способ остановить Firebug от работы на определенном сайте? - PullRequest
14 голосов
/ 21 мая 2010

Есть ли какой-нибудь способ заставить Firebug вообще не работать на сайте?

Ответы [ 15 ]

2 голосов
/ 08 июня 2012

Просто предоставить небольшой трюк, который я использую, помогает людям меньше видеть ваш код,

Один из приемов, которые я делаю, который не препятствует нахождению JavaScript опытным разработчиком или хакером, но отпугивает нескольких людей, играющих с Firebug / inspector,

использовать jQuery или другую библиотеку с селектором решетки

второй порт захода - это все файлы, которые вы поместили в загрузочный файл E.G

Loader.js

(function($){
    function loader(type, addr){
        var head = $("head")[0];
        switch(type){
            case "script":{
                var element = $(document.createElement("script"));
                element.attr("type", "text/javascript");
                element.attr("src", addr);
                element.attr("loaded", "loader")
                $(head).append(element);
            }
            case "style":{
                var element = $(document.createElement("link"));
                element.attr("rel", "stylesheet");
                element.attr("type", "text/css");
                element.attr("loaded", "loader");
                element.attr("href", addr);
                $(head).append(element);
            }
        }
    }

    loader("css", "path/to/your.css");
    loader("script", "path/to/script.js");

    loader("script", "unloader.js")
})(jQuery);

Таким образом, для начала использовалось закрытие, которое не позволяло никому использовать консольный ввод инспектора для просмотра кода, который был запущен.

поэтому, как только этот файл будет передан, он загрузит ваши CSS и JS, но вы все равно можете увидеть там загруженный элемент head вашего инспектора, благодаря браузерам и тому, как они работают, вы можете удалять их, а не выгружать, это означает код не будет удален из выполнения, но будет препятствовать их отображению в инспекторе, это то, что происходит в загрузчике.

unloader.js

(function($){
    $("head *[loaded=loader]").remove();
})(jQuery);

Вышеуказанное удалит файлы, загруженные через загрузчик.

Единственное, что вам нужно запомнить - это добавить loaded="loader" к вашему скрипту, который включает загрузчик, теперь это не делает невозможным просмотр ваших файлов, но мешает инспектору показывать их в HTML,

способы обойти это можно так: «Просмотреть исходный код», посмотреть файл загрузчика и прочитать его, поэтому убедитесь, что вы минимизируете код, который я использую Google Closure Compiler (http://closure -compiler.appspot.com / home)

даже это не останавливает их, а только усложняет. Один из шагов, которые я протестировал, но не использовал, - загрузчик, и файлы, которые вы загружаете, используют правило .HTAccess, чтобы проверить, что у них есть ссылка на ссылку на вашем сайте, это предотвратит их прямой просмотр к вашим файлам кода js / css

другой совет: не храните их в обычных местах и ​​не используйте общие имена. Сценарии E.G в / scripts / CSS в / style / или style.css

Вот пример закрытия загрузчика, скомпилированного и затем запутанного

Loader.js

var _0xc596=["\x68\x65\x61\x64","\x73\x63\x72\x69\x70\x74","\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74","\x74\x79\x70\x65","\x74\x65\x78\x74\x2F\x6A\x61\x76\x61\x73\x63\x72\x69\x70\x74","\x61\x74\x74\x72","\x73\x72\x63","\x6C\x6F\x61\x64\x65\x64","\x6C\x6F\x61\x64\x65\x72","\x61\x70\x70\x65\x6E\x64","\x6C\x69\x6E\x6B","\x72\x65\x6C","\x73\x74\x79\x6C\x65\x73\x68\x65\x65\x74","\x74\x65\x78\x74\x2F\x63\x73\x73","\x68\x72\x65\x66","\x73\x74\x79\x6C\x65","\x63\x73\x73","\x70\x61\x74\x68\x2F\x74\x6F\x2F\x79\x6F\x75\x72\x2E\x63\x73\x73","\x70\x61\x74\x68\x2F\x74\x6F\x2F\x73\x63\x72\x69\x70\x74\x2E\x6A\x73","\x75\x6E\x6C\x6F\x61\x64\x65\x72\x2E\x6A\x73"];(function (_0x76e5x1){function _0x76e5x2(_0x76e5x2,_0x76e5x3){var _0x76e5x4=_0x76e5x1(_0xc596[0])[0];switch(_0x76e5x2){case _0xc596[1]:var _0x76e5x5=_0x76e5x1(document[_0xc596[2]](_0xc596[1]));_0x76e5x5[_0xc596[5]](_0xc596[3],_0xc596[4]);_0x76e5x5[_0xc596[5]](_0xc596[6],_0x76e5x3);_0x76e5x5[_0xc596[5]](_0xc596[7],_0xc596[8]);_0x76e5x1(_0x76e5x4)[_0xc596[9]](_0x76e5x5);;case _0xc596[15]:_0x76e5x5=_0x76e5x1(document[_0xc596[2]](_0xc596[10]));_0x76e5x5[_0xc596[5]](_0xc596[11],_0xc596[12]);_0x76e5x5[_0xc596[5]](_0xc596[3],_0xc596[13]);_0x76e5x5[_0xc596[5]](_0xc596[7],_0xc596[8]);_0x76e5x5[_0xc596[5]](_0xc596[14],_0x76e5x3);_0x76e5x1(_0x76e5x4)[_0xc596[9]](_0x76e5x5);;} ;} ;_0x76e5x2(_0xc596[16],_0xc596[17]);_0x76e5x2(_0xc596[1],_0xc596[18]);_0x76e5x2(_0xc596[1],_0xc596[19]);} )(jQuery);

unloader.js

var _0xc2fb=["\x72\x65\x6D\x6F\x76\x65","\x68\x65\x61\x64\x20\x2A\x5B\x6C\x6F\x61\x64\x65\x64\x3D\x6C\x6F\x61\x64\x65\x72\x5D"];(function (_0x3db3x1){_0x3db3x1(_0xc2fb[1])[_0xc2fb[0]]();} )(jQuery);

для воспроизведения: http://closure -compiler.appspot.com / home введите код под // ДОБАВИТЬ КОД ЗДЕСЬ

Затем возвращаемый результат используется: http://www.javascriptobfuscator.com/Default.aspx, чтобы сделать его еще более нечитаемым.

Надеюсь, это поможет любому, кто хочет сделать JS максимально безопасным

Но, пожалуйста, помните, как и все остальные говорили, что это не остановит профессиональных хакеров, просто очень затруднит чтение и понимание

1 голос
/ 21 мая 2010

если вы хотите защитить свой код, вы можете попробовать зашифровать исходный код JavaScript

Google javascript source

1 голос
/ 21 мая 2010

В конечном счете, нет, так как браузер (в данном случае firefox) на своей машине может выбрать для запуска любой javascript (например, firebug), который он хочет. Вы не можете запретить пользователям запускать его вместе с вашим сайтом.

1 голос
/ 21 мая 2010

Нет ...............

0 голосов
/ 27 июля 2015

Моя репутация слишком низкая, чтобы комментировать, но я просто хотел отметить кое-что, что я заметил после изучения о window.history.pushState (); кажется, что вы можете изменить то, что в данный момент находится в адресной строке, и как только вы это сделаете, «просмотр источника страницы» не будет работать. Поэтому, если бы был способ заблокировать работу инструментов разработчика, я бы не знал, как просмотреть исходный код.

РЕДАКТИРОВАТЬ: После использования window.history.pushState (), когда я просматриваю инструменты разработчика, он советует мне перезагрузить страницу, чтобы посмотреть, что находится в файле javascript (но затем он снова показывает адрес файла JS, так что это не очень помогает)

...