Как мы можем защитить сторонний виджет?
Я создаю виджет третьей стороны
мы отбрасываем скрипт на страницу клиентов и загружаем некоторый контент.
проблема, с которой я сталкиваюсь, заключается в том, как защитить мой виджет. В качестве виджета thrid party я знаю, что нет 100% - го способа его защитить. Но пытаюсь выработать "достаточно хороший" подход.
Я хочу, чтобы это было трудно для не клиента, чтобы просто сорвать наш скрипт с сайта конкурента и использовать его на их.
решения, которые я вижу, это pull validate запрашивающий домен (который, как я знаю, может быть подделан, не уверен, могу ли я защитить от этого?)
Я посмотрел на другие виджеты , такие как olark и olapic, которые используют уникальные идентификаторы для каждого клиента в своем скрипте, но не вижу, насколько это полезно.
каковы наилучшие методы защиты виджета третьей стороны?
2 ответов
защита клиентского доступа арендатора
обеспечение стороннего клиентского доступа клиента к Javascript создает уникальный набор проблем. Большая часть трудностей в этом решении связана с тем, что механизм аутентификации должен присутствовать в веб-контенте арендаторов и доставляться из браузера их клиентов. Стандартные механизмы аутентификации клиента сервера, такие как сеансы, куки, пользовательские заголовки, рефереры и ограничение IP-адреса, не применяются из - за расширенный характер сделки.
в этой статье by Bill Patrianakos предоставляет решение с помощью запроса динамического ключа, который предоставляет маркер доступа клиенту клиента.
Patrianakos предоставляет некоторую хорошую информацию о сторонних отношениях арендаторов и обсуждает некоторые ограничения этой модели в своей статье.
защита кода Javascript
защита вашего кода в Javascript затруднена из-за требование, чтобы код интерпретировался во время выполнения браузером клиента. Тем не менее, можно запутать ваш Javascript с помощью Компилятор Закрытия Google. The оптимизация особенности компилятора предлагают низкоуровневое переименование ссылок, а также обеспечивает более компактный код для доставки виджета.
для компиляции Javascript с помощью расширенных оптимизаций используйте следующую командную строку:
java -jar compiler.jar --compilation_level ADVANCED_OPTIMIZATIONS \
--js myWidget.js --js_output_file myWidget.min.js
есть некоторые важные предостережения. в этой статье охватывает некоторые вещи, чтобы избежать в вашем коде, чтобы гарантировать, что код будет работать правильно. Я бы также рекомендовал хороший помощью QUnit тестовый кадр, чтобы убедиться, что ваш виджет будет работать правильно.
чтобы защитить виджет, если вы хотите предотвратить поддельные запросы, вам нужно открыть всплывающее окно и открыть страницу с вашего сервера, который полностью находится под вашим контролем, и подтвердить любые действия, такие как "опубликовать твит" там.
посмотреть ответ для этого вопроса для более расширенного обсуждения.
для предотвращения кражи вашего Javascript недостаточно минификации - лучше использовать обфускатор. Посмотрите например [JScramble], это презентация о том, как он работает.