Я создал сценарий tampermonkey и хочу поделиться им с другом. Есть ли способ отключить его удаленно и сделать нефункциональным, чтобы он больше не мог им пользоваться?

Я думаю о чем-то вроде файла .txt на моем сервере с определенными значениями в нем. Это будет токеном. Мой скрипт будет работать только в том случае, если токен совпадает с сервером. Таким образом, я мог изменить токен в любое время, сделав скрипт недоступным для моего друга.

Есть идеи, как это возможно :) Спасибо!

1
Foreseen winx club Gator winx 16 Апр 2020 в 10:24

1 ответ

Лучший ответ

Я думаю о чем-то вроде файла .txt на моем сервере с определенными значениями в нем.

Это одна идея - убедитесь, что конечная точка вашего сервера имеет Access-Control-Allow-Origin *, чтобы ее можно было запросить через Javascript из любого места, и пусть ваш пользовательский скрипт запросит его, а затем проверьте, соответствует ли он. Но если ваш друг вообще знает какой-либо Javascript, это будет тривиально легко обойти.

Я думаю, что лучший способ - сохранить основной исходный код только на вашем сервере. Таким образом, если скрипт перестанет работать, пользователи не смогут просто открыть его и отладить. Подумайте, что ваш сервер обслуживает основное содержимое скрипта, а пользовательский скрипт выполняет ответ:

fetch('serverEndpoint')
  .then(res => res.text())
  .then((text) => {
    eval(text);
  });

Хотя это может достичь вашей цели, это очень небезопасно для пользователей вашего пользовательского скрипта, поскольку теперь у вас есть возможность запускать произвольный код на их машинах. Если бы я увидел такой пользовательский скрипт, я бы сразу отметил его как ненадежный.

Другой метод - зашифровать ваш код в пользовательском скрипте, чтобы его можно было расшифровать и запустить только по запросу ключа с вашего сервера. Это будет безопаснее для пользователей, но если они не видят, что на самом деле делает скрипт, они могут ему не доверять - и если они знают достаточно Javascript, они смогут посмотреть на ответ вашего сервера и расшифровать ваш исходный код. сами себя.

1
CertainPerformance 16 Апр 2020 в 07:47