Создание плагина WordPress, который требует аутентификации - PullRequest
1 голос
/ 12 августа 2010

Я хочу создать плагин для WordPress, но также хочу, чтобы плагин можно было использовать только после его активации с помощью серийного ключа, который должен быть уникальным для каждого домена.

Что такоелучший способ сделать это, предполагая:

  1. Я должен предоставить действительный исходный код пользователям и не могу иметь тип безопасности VideoPress - который является просто оболочкой JavaScript для фактического контента, который исходит отсервер плагина.
  2. Я хочу убедиться, что начинающий среднестатистический разработчик PHP не сможет легко обойти защиту.

Самое простое решение - это иметьсервер, который сможет служить в качестве конечной точки для проверки, является ли домен, из которого поступает запрос, правильным или нет (вызов Ajax при установке plugin, init и т. д.).Но ничто не мешает конечному пользователю просто удалить эти фрагменты кода и заставить его работать без аутентификации.Я просто хочу сделать это немного жестче.

1 Ответ

1 голос
/ 12 августа 2010

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

Первое требование заключается в создании открытого / закрытого ключа.

Algo

  1. На основе текущего домена ($ _SERVER ['HTTP_HOST']) и серийного ключа (загрузка из файла конфигурации), он сгенерирует открытый ключ .

    Одна реализация:

    1.1 Повторите байтов домена , чтобы иметь ту же длину, что и serial / открытый ключ .

    1.2 XOR предыдущий результат с serial .(Это должно дать вам открытый ключ )

  2. Используйте сгенерированный открытый ключ для расшифровки некоторого содержимого (код, который будет выполнен), которое былошифровать с помощью закрытого ключа .В идеале зашифрованный код должен выполняться только при установке или в задаче инициализации.

Чтобы создать новый серийный номер, необходимо повторить XOR байтов домена . и открытый ключ .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...