Я думаю о чем-то вроде файла .txt на моем сервере с указанными c значениями в нем
Это одна идея - убедитесь, что конечная точка вашего сервера имеет Access-Control -Allow-Origin *
, чтобы его можно было запрашивать через Javascript из любого места, и ваш пользовательский скрипт запрашивает его, а затем проверяет, совпадает ли он. Но если ваш друг вообще знает какой-либо Javascript, это будет легко обойти.
Я думаю, что лучшим способом было бы сохранить основной исходный код только на вашем сервере. Таким образом, если скрипт перестает работать, пользователи не могут просто открыть его и отладить. Подумайте о том, чтобы ваш сервер обслуживал основной контент скрипта, и чтобы пользовательский скрипт выполнял ответ:
fetch('serverEndpoint')
.then(res => res.text())
.then((text) => {
eval(text);
});
Хотя это может достичь sh вашей цели, очень небезопасно для пользователей вашего userScript, так как теперь у вас есть возможность запускать произвольный код на своих машинах. Если бы я увидел такой пользовательский скрипт, я бы пометил его как ненадежный, не подумав ни секунды.
Еще один способ - зашифровать ваш код в пользовательском сценарии так, чтобы его можно было расшифровать только путем запроса ключа у вашего сервера. и беги. Это было бы безопаснее для пользователей, но если они не могут увидеть, что на самом деле делает скрипт, они могут не доверять ему - и если они знают достаточно Javascript, они смогут посмотреть ответ вашего сервера и расшифровать ваш сами исходники.