Знаете ли вы способ защиты кода JS и сделать его видимым только по запросу удаленного? - PullRequest
4 голосов
/ 29 июня 2011

Теоретически JS запускается в браузере, после первой загрузки его можно легко скопировать и запустить прямо с локального сервера, не проходя через удаленный сервер.Поскольку мне нужно продать приложение * js (pay-as-you-use), мне нужно проверить каждый запрос и сделать его доступным ТОЛЬКО, если этого требует конкретный сайт, и, конечно, только если он заплатил.

Ответы [ 4 ]

5 голосов
/ 29 июня 2011

Это не работает.Как только кто-то загрузил копию файла JavaScript, он или она всегда может сохранить ее копию и даже распространить.

Таким образом, вы не можете защитить сам JavaScript - но при условии, что вы полагаетесь на некоторый клиент-сервервзаимодействие (например, AJAX), сервер не будет отвечать на запросы, поступающие из неавторизованных источников, что делает клиентскую сторону бесполезной.

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

5 голосов
/ 29 июня 2011

Я бы не сделал файл JS, который вы планируете продать, доступным напрямую по URL-адресу, например

yourdomain.com/yourfile.js

Я бы предложил его по URL-адресу, как

yourdomain.com/getfile

Где / getfile - это URL, который обрабатывается серверным языком PHP / Java и т. Д., Где вы можете проверить все необходимые учетные данные, будь то запрос имени домена, IP-адреса, какого-либо токена или чего-то еще. *

1 голос
/ 29 июня 2011

если ваше приложение сделано в java, вы можете использовать ServletFilter для проверки правильности запроса (если IP-адрес правильный, или, возможно, вы можете использовать тикет, такой как facebook, twitter, whatyouwant rest API), и если это не так не работает ничего не показывает

если вы не используете Java, я думаю, что нечто подобное можно сделать с каждым языком программирования

0 голосов
/ 29 июня 2011

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

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

Ваша лучшая ставка, в дополнение к вышесказанному, заключается в том, чтобы отслеживать домены, которые заплатили, и время от времени выполнять поиск, чтобы узнать, кто-нибудь принимает ваш код.

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