Как защитить расширение chrome
расширение Chrome упаковано в zip-архив. После установки он устанавливается в папку, и пользователь может получить к нему доступ. Также он может переписать расширение и даже клонировать на новое расширение.
Как я могу защитить расширение от пользовательских модификаций и клонирования? Я нахожу возможность для dll-файлов (может быть скомпилирована) - но это не очень приятно.
4 ответов
предпосылка, кажется простой. По умолчанию браузер интерпретирует HTML / Javascript, а также расширения chrome, которые работают вместе со страницей.
один из способов-запутать ваш код javascript или полагаться на скомпилированные бинарные Плагины NPAPI или использовать NaCL
Если у вас есть собственный код (например, специальный algo, который вы хотите сохранить в безопасности и т. д.), И вы нацелены на Chrome - я бы предложил пойти с Собственного Клиента. Nacl позволяет запускать код C / C++ в вашем браузере. Это очень мощный и вы можете быть уверены, что это будет очень трудно для кого-то, чтобы забрать в свой двоичный.
В настоящее время нет способа скрыть исходный код расширения Chrome от пользователей или конкурентов.
в Chrome есть инструкция веб-магазин faq:
могу ли я продавать расширения в магазине? Пока нет, но эта функция скоро появится.
вы можете дождаться этой функции или попробовать следующие варианты:
запутать источник Javascript: проверьте это для получения дополнительной информации как я могу запутать (защитить) JavaScript?
держите ключевую логику на удаленном сервере и делайте вызовы Ajax из фонового скрипта для связи с сервером
расширения Chrome свободны от "той же политики происхождения", если разрешение cross-origin определено в манифесте:
обычные веб-страницы могут использовать объект XMLHttpRequest для отправки и получать данные с удаленных серверов, но они ограничены тем же политика происхождения. Расширения не так ограничены. Расширение может говорить с удаленные серверы за пределами своего источника, если он сначала запрашивает разрешения перекрестного происхождения.
определите следующее в манифесте:
{
"name": "your extension",
...
"permissions": [
"http://www.yourserver.com/"
],
...
}
Я использую плагин Gulp для обфускации JavaScript. Это не нарушает код расширения.