Как мы можем защитить сторонний виджет?

Я создаю виджет третьей стороны

мы отбрасываем скрипт на страницу клиентов и загружаем некоторый контент.

проблема, с которой я сталкиваюсь, заключается в том, как защитить мой виджет. В качестве виджета 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], это презентация о том, как он работает.