Я создал сценарий tampermonkey и хочу поделиться им с другом. Есть ли способ отключить его удаленно и сделать нефункциональным, чтобы он больше не мог им пользоваться?
Я думаю о чем-то вроде файла .txt на моем сервере с определенными значениями в нем. Это будет токеном. Мой скрипт будет работать только в том случае, если токен совпадает с сервером. Таким образом, я мог изменить токен в любое время, сделав скрипт недоступным для моего друга.
Есть идеи, как это возможно :) Спасибо!
1 ответ
Я думаю о чем-то вроде файла .txt на моем сервере с определенными значениями в нем.
Это одна идея - убедитесь, что конечная точка вашего сервера имеет Access-Control-Allow-Origin *
, чтобы ее можно было запросить через Javascript из любого места, и пусть ваш пользовательский скрипт запросит его, а затем проверьте, соответствует ли он. Но если ваш друг вообще знает какой-либо Javascript, это будет тривиально легко обойти.
Я думаю, что лучший способ - сохранить основной исходный код только на вашем сервере. Таким образом, если скрипт перестанет работать, пользователи не смогут просто открыть его и отладить. Подумайте, что ваш сервер обслуживает основное содержимое скрипта, а пользовательский скрипт выполняет ответ:
fetch('serverEndpoint')
.then(res => res.text())
.then((text) => {
eval(text);
});
Хотя это может достичь вашей цели, это очень небезопасно для пользователей вашего пользовательского скрипта, поскольку теперь у вас есть возможность запускать произвольный код на их машинах. Если бы я увидел такой пользовательский скрипт, я бы сразу отметил его как ненадежный.
Другой метод - зашифровать ваш код в пользовательском скрипте, чтобы его можно было расшифровать и запустить только по запросу ключа с вашего сервера. Это будет безопаснее для пользователей, но если они не видят, что на самом деле делает скрипт, они могут ему не доверять - и если они знают достаточно Javascript, они смогут посмотреть на ответ вашего сервера и расшифровать ваш исходный код. сами себя.
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.