Как зайти в Даркнет?!
25th January, 01:11
8
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
899
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
952
0
Очень долго работает Update запрос Oracle
27th January, 09:58
916
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
907
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
942
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1727
0
период по дням
25th October, 10:44
3957
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3722
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4614
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4382
0
Помогите пожалуйста решить задачи
24th November, 23:53
6087
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4352
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4400
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Достаточно ли использовать обфускатор для защиты моего кода JavaScript?
Я работаю над созданием инструмента разработки, который написан на JavaScript.
Это не будет проект с открытым исходным кодом и будет продаваться (надеюсь) как коммерческий продукт.
Я ищу лучший способ защитить свои инвестиции. Достаточно ли использовать обфускатор (code mangler) для разумной защиты кода?
Есть ли другие альтернативы, о которых я не знаю?
(Я не уверен, что obfuscator-это правильное слово, это одно из приложений, которое берет ваш код и делает его очень нечитаемым.)
Я расскажу тебе один секрет. Как только вы поймете это, вы почувствуете себя намного лучше в том, что Javascript obfuscation действительно полезен только для экономии пропускной способности при отправке скриптов по проводу.
Ваш исходный код не стоит воровать.
Я знаю, что это шокирует эго, но я могу сказать это уверенно, даже не видя написанной вами строки кода, потому что за пределами очень немногих областей разработки, где происходит серьезная магия, это верно для всего исходного кода.
Скажем, завтра кто-то бросил на ваш порог стопку DVDs, содержащую исходный код для Windows Vista. Что бы вы могли с ним сделать? Конечно, вы можете скомпилировать его и раздать копии, но это всего лишь на один шаг больше усилий, чем копирование розничной версии. Вы могли бы кропотливо найти и удалить код проверки лицензии, но это то, что какой-то умный ребенок уже сделал с двоичными файлами. Заменить логотип и графику, сделать вид, что вы написали его сами и продать его как "Vicrosoft Mista"? Тебя поймают.
Вы можете потратить огромное количество времени на чтение кода, пытаясь понять его и действительно "stealing the intellectual property", что Microsoft инвестировала в разработку продукта. Но вы будете разочарованы. Вы обнаружите, что кодекс - это длинная серия приземленных решений, принимаемых одно за другим. Некоторые из них были бы умнее, чем вы можете себе представить. Некоторые из них заставили бы вас качать головой, задаваясь вопросом, каких обезьян они там нанимают. Большинство просто заставило бы вас пожать плечами и сказать "yeah, that's how you do that."
В процессе вы узнаете много нового о написании операционных систем, но это не повредит Microsoft.
Замените "Vista" на "Leopard", и вышеприведенные пункты не изменятся ни на йоту. Это не Microsoft, это программное обеспечение . Половина людей на этом сайте, вероятно, могли бы разработать клон переполнения стека, с или без просмотра источника этого сайта. Они просто этого не сделали. Исходные коды Firefox и WebKit доступны для любого читателя. Теперь идите и напишите свой собственный браузер с нуля. Увидимся через несколько лет.
Разработка программного обеспечения-это вложение времени. Это полнейшее высокомерие-воображать, что то, что вы делаете, настолько особенное, что никто не может клонировать его, не глядя на ваш источник, или даже что это сделает их работу намного проще без действительного (и легко обнаруживаемого) количества вырезки и вставки.
Я глубоко не согласен с большинством приведенных выше ответов.
Это правда, что каждое программное обеспечение может быть украдено, несмотря на запутанность, но, по крайней мере, это затрудняет извлечение и повторное использование отдельных частей программного обеспечения, и в этом весь смысл.
Возможно, это дешевле и менее рискованно использовать запутывание, чем оставлять код открытым и бороться в суде после того, как кто-то украл лучшие части нашего программного обеспечения и сделал опасный параллелизм.
Незаметный шепот кода:
- Давай, проанализируй меня, используй заново. Может быть, вы могли бы сделать лучшее программное обеспечение, используя меня.
Запутанный код говорит::
- Уходи, чувак. Дешевле использовать свои собственные идеи, чем пытаться расколоть меня.
Вы проиграете битву, если попытаетесь запутать свой код в надежде, что кто-то не украдет его. Вы можете остановить случайный браузер от получения его, но кто-то посвященный почти наверняка будет в состоянии преодолеть любую меру, которую вы используете.
В прошлом я видел, как люди делают несколько вещей:
- Вставьте много whitespace в верхней части страницы с сообщением, сообщающим людям, что код недоступен, когда на самом деле вам просто нужно прокрутить вниз несколько страниц, чтобы добраться до него.
- Прогоняя его через какой-то кодер, это настолько полезно, что его можно просто прогнать через декодер.
- Другой метод заключается в уменьшении имен переменных до одного символа и удалении whitespace (это тоже вопрос эффективности).
Есть много других методов.
В конце концов, ваши усилия, скорее всего, только остановят случайный браузер от просмотра ваших вещей. Если придет кто-то посвященный, то вы не сможете сделать очень много. Тебе придется жить с этим.
Мой совет - сделать действительно потрясающий продукт, который привлекает большинство людей, и отбить любую конкуренцию, имея лучший product/service/community, а не самый запутанный код.
Вы всегда сталкиваетесь с тем, что любой пользователь, который заходит на вашу веб-страницу, скачивает какую-то рабочую версию вашего источника Javascript. У них будет исходный код. Запутывание его может сделать очень трудным повторное использование кем-то с намерением украсть вашу тяжелую работу. Однако во многих случаях кто-то может даже повторно использовать запутанный источник! Или, в худшем случае, они могут разгадать его вручную и в конце концов понять.
Примером такой ситуации может быть Google Maps . Источник Javascript явно запутан. Однако для действительно частной / конфиденциальной логики они передают данные на сервер и заставляют сервер обрабатывать эту информацию, используя XMLHttpRequests (AJAX). При таком дизайне у вас есть важные части на стороне сервера, гораздо более жестко контролируемые.
Это, наверное, самое лучшее, что вы можете сделать. Просто имейте в виду, что любой человек с достаточной самоотдачей, вероятно, может снять путаницу с вашей программы. Просто убедитесь, что вам это удобно, прежде чем приступать к вашему проекту. Я думаю, что самой большой проблемой с этим было бы контролировать, кто использует его на своем сайте. Если кто-то заходит на сайт с вашим кодом и ему нравится то, что он делает, не имеет значения, что он не понимает, что делает код, или не может прочитать его, когда он может просто скопировать код и использовать его на своем собственном сайте.
Обфускатор не поможет вам вообще, если кто-то хочет выяснить код. Код все еще существует на клиентской машине, и они могут взять его копию и изучить ее на досуге.
Просто невозможно скрыть код, написанный в Javascript, так как исходный код должен быть передан браузеру для выполнения.
Если вы хотите скрыть свой код, у вас есть следующие возможности:
1) Используйте среду, в которой компилируемый код (не исходный) загружается на клиент, например Flash или Silverlight. Я даже не уверен, что это надежно, но это определенно намного лучше, чем Javascript.
2) иметь серверную часть на стороне сервера, которая выполняет работу, и тонкий клиент, который просто делает запросы к серверу.
Я бы сказал, что да, этого достаточно, если вы также убедитесь, что вы сжимаете код, а также используете инструмент, такой как упаковщик Дина Эдварда или аналогичный. Если вы подумаете о том, что возможно с помощью таких инструментов, как .NET Reflector, с точки зрения скомпилированного кода обратного инжиниринга / IL в .NET, вы поймете, что вы ничего не можете сделать, чтобы полностью защитить свои инвестиции.
С другой стороны, помните, что люди, которые выпускают свой исходный код, также, похоже, неплохо справляются - это их опыт, который люди хотят больше, чем их интеллектуальная собственность.
code obfuscator достаточно для того, что нуждается в минимальной защите, но я думаю, что этого определенно не будет достаточно, чтобы действительно защитить вас. если вы будете терпеливы, то действительно сможете все это разобрать.. и я уверен, что есть программы, которые сделают это за вас.
Тем не менее, вы не можете остановить никого от пиратства ваших вещей, потому что они в конечном итоге нарушат любую защиту, которую вы создадите в любом случае. и это особенно легко в языке сценариев, где код не компилируется.
Если вы используете какой-то другой язык, например java или .NET, вы можете попробовать сделать такие вещи, как "calling home", чтобы проверить, что номер лицензии соответствует заданному url. Это работает, если ваше приложение является своего рода онлайн-приложением, которое будет подключено к интернету все время. Но имея доступ к источнику, люди могут легко обойти эту часть.
Короче говоря, javascript-это плохой выбор для того, что вы делаете.
Шаг вперед от того, что вы делаете, - это, возможно, использование серверной части веб-сервиса для получения ваших данных. Пусть веб-сервис обрабатывает процесс аутентификации / проверки. Требуется немного работы, чтобы убедиться, что он пуленепробиваемый, но это может сработать
Если это для веб-сайта, который по своей природе помещает просмотр своего кода на один клик меню, есть ли на самом деле какая-либо причина скрывать что-либо? Если кто-то хочет украсть ваш код, он, скорее всего, приложит все усилия, чтобы сделать даже самый искореженный код читаемым человеком. Посмотрите на коммерческие сайты, они не запутывают свой код, и никто не выходит и не крадет код из приложений google. Если вы действительно беспокоитесь о краже кода, я бы посоветовал написать его на каком-нибудь другом компилируемом языке. (что, конечно же, разрушает все веб-приложения...) Даже тогда вы не совсем в безопасности,там есть много де-компиляторов.
Так что на самом деле нет никакого способа сделать то, что вы хотите, перед лицом кого-то с достаточной мотивацией.