Как отключить инструменты разработчика браузера?
в настоящее время я разрабатываю веб-приложение, и поскольку у него есть доступ к базе данных внизу, мне требуется возможность отключить инструменты разработчика из Safari, Chrome, Firefox и Internet Explorer и Firebug в Firefox и всех подобных приложениях. Есть ли способ сделать это?
Примечание: платформа AJAX, предоставляемая базой данных, требует, чтобы все данные в базе данных были в веб-параметрах, которые могут быть изменены, и чтобы все, что она возвращает, обрабатывалось Яваскрипт. Поэтому, когда он возвращает значение, например, имеет ли пользователь доступ к определенной части веб-сайта, он должен обрабатываться в JavaScript, к которому инструменты разработчика могут получить доступ в любом случае. Так что это обязательно.
UPDATE: для тех из вас, кто все еще думает, что я делаю плохие предположения, я спросил поставщика. Ниже приведен их ответ:
вот некоторые предложения по способам снижения риска:
1) Используйте JavaScript обфускатор для запутать код и только предоставить
запутанная версия с проданным приложением; держите non
запутанная версия для себя, чтобы сделать правки. Вот это онлайн
обфускатор:
как я могу запутать (защитить) JavaScript?
http://en.wikipedia.org/wiki/Obfuscated_code
http://javascriptobfuscator.com/default.aspx
2) Используйте менее описательное имя; возможно ' repeatedtasks.js ' вместо
- охрана.js 'as' безопасность.Яш будет наверное, больше никому
рассматривая этот тип информации как нечто важное.
10 ответов:
нет, вы не можете этого.
меню разработчика на стороне клиента и браузера пользователя.
также разработчик браузера должен иметь ничего чтобы сделать с вашим кодом базы данных на стороне сервера, и если это так, вам нужна некоторая реструктуризация maaaaaajor.
Если ваша платформа требует, чтобы вы делали авторизацию в клиенте, то...
вам нужно изменить свои рамки
когда вы помещаете приложение в дикую природу, где пользователи, которым вы не доверяете, могут получить к нему доступ; вы должны нарисовать линию на песке.
- физическое оборудование, которое у вас есть; и может запереть за сильной дверью. вы можете делать все что угодно здесь; это отличное место для хранения вашей базы данных и выполнения функций авторизации, чтобы решить, кто и что может сделать с вашей базой данных.
- все остальное; включая браузеры на клиентских компьютерах; мобильные телефоны; круглосуточные киоски размещаются в фойе вашего офиса. вы не можете доверять этим! Никогда! вы ничего не можете сделать, это означает, что вы можете быть полностью уверены, что эти машины не лгут, чтобы обмануть вас и ваш клиенты остались без денег. Вы не контролируете его, поэтому вы никогда не можете надеяться узнать, что происходит.
ваша среда разработки не может быть этой мозг-мертв. Этого просто не может быть.
Я настоятельно рекомендую по электронной почте ваш босс с:
- спрос на неделю или две в расписании для обучения / обучения.
- спрос на поддержку билетов с поставщиком, чтобы выяснить, как выполнить проверку на стороне сервера.
- четкое предупреждение о том, что если инструмент не может выполнить проверку на стороне сервера, то вы будет высмеивать на первой странице The Wall Street Journal, когда вся ваша база данных просочилась / уничтожена / и т. д.
на самом деле это как-то возможно (как-делает-facebook-отключить-разработчик-инструменты), но это очень плохая идея для защиты ваших данных. Злоумышленник всегда может использовать некоторые другие (открытые, самостоятельно написанные) движки, которые у вас нет никакого контроля. Даже javascript обфускация может только замедлить немного взлома вашего приложения, но это также не дает практически никакой безопасности.
единственный разумный способ защитить ваши данные написать безопасный код на стороне сервера. И помните, что если вы позволите кому-то загрузить некоторые данные, он может делать с ними все, что захочет.
нет. Невозможно отключить средства разработчика для конечных пользователей.
Если ваше приложение небезопасно, если у пользователя есть доступ к инструментам разработчика, то это просто небезопасно.
Не забывайте о таких инструментах, как Саша. Где даже если вы заблокируете все консоли браузеров, http-запросы могут быть изменены на клиенте, даже если вы идете HTTPS. Fiddler может захватывать запросы из браузера, пользователь может изменять его и повторно играть с вредоносным вводом. Если вы не защищаете свои запросы AJAX,но я не знаю, как это сделать.
просто не доверяйте никакому входу, который вы получаете из любого браузера.
Обновление ПО ВРЕМЕНИ (2015) когда этот ответ был опубликован, этот трюк был возможен. Сейчас (2017) браузеры являются зрелыми. следующий трюк больше не работает!
Да, это возможно. Chrome обертывает весь код консоли вwith ((console && console._commandLineAPI) || {}) { <code goes here> }... так что сайт переопределяет
console._commandLineAPIбросить:Object.defineProperty(console, '_commandLineAPI', { get : function() { throw 'Nooo!' } })Это главный трюк!
вы можете легко отключить инструменты разработчика, определив это:
Object.defineProperty(console, '_commandLineAPI', { get : function() { throw 'Nooo!' } })нашли его здесь: как Facebook отключает встроенные инструменты разработчика браузера?
Если вы используете react, то удалите все .сопоставьте файлы / JS и / css папки из сгенерированной сборки.
Брэндон ,
вы можете сделать что-то вроде этого , это очень простая идея, вы можете переопределить собственный код , сделав это , это не то, что вы ищете, вы должны развиваться из этого
delete window.console console.log('test'); // Noting will work
Comments