Size: a a a

Node.js — русскоговорящее сообщество

2020 March 26

И

Илья | 😶 in Node.js — русскоговорящее сообщество
Борис Бритва
Есть сервер все он уехал в далекие края в закрытую сеть, без возможности стучатся во внешку. И надо его код защитить. Вообще я так понимаю единственный вариант это использовать другой инструментарий и язык.
Да
Жс не про это совсем
источник

ДБ

Дмитрий Беляев in Node.js — русскоговорящее сообщество
Илья | 😶
Делаешь апи на своей стороне, а другим отдаёшь бинарник (c++, c#, go), который обращается к твоему апи
скоимпилированный C# читается ничуть не хуже чем js
там иногда вплоть до исходных имен переменных восстановить можно
источник

ДБ

Дмитрий Беляев in Node.js — русскоговорящее сообщество
Борис Бритва
Есть сервер все он уехал в далекие края в закрытую сеть, без возможности стучатся во внешку. И надо его код защитить. Вообще я так понимаю единственный вариант это использовать другой инструментарий и язык.
а вообще, при должном усердии любой код на любом ЯП можно изучить, абсолютной защиты нет
тот же js можно обфусцировать так, что изучать будет затруднительно, но если упрутся - изучат
даже если код на си будет написан... objdump и вперед изучать
источник

АП

Алексей Попов in Node.js — русскоговорящее сообщество
Борис Бритва
Есть сервер все он уехал в далекие края в закрытую сеть, без возможности стучатся во внешку. И надо его код защитить. Вообще я так понимаю единственный вариант это использовать другой инструментарий и язык.
Делаешь приложение на плюсах, которое достаёт твой код из ресурсов, разворачивает его в памяти, подключает к ФС, и всё ок

Чтобы достать код приложения нужно будет сделать ровно то же самое, что и для кода плюсов, то есть уровень защиты одинаковый
Так делали на прошлой работе, и мне не известно ни одного случая успешного взлома системы, а поставок тысячи
Но если цель - исключить нелицензионный запуск, то решение необходимо дополнить каким-нибудь hasp sentinel и вообще службой лицензирования
источник

АП

Алексей Попов in Node.js — русскоговорящее сообщество
Илья | 😶
Делаешь апи на своей стороне, а другим отдаёшь бинарник (c++, c#, go), который обращается к твоему апи
Это решение вообще ни о чём. Мало того, что у пользователя может не быть инета, так оно ещё заставляет тебя платить за то, чтобы пользователь мог работать
источник

S🛸

Sergey 🛸 in Node.js — русскоговорящее сообщество
Алексей Попов
Делаешь приложение на плюсах, которое достаёт твой код из ресурсов, разворачивает его в памяти, подключает к ФС, и всё ок

Чтобы достать код приложения нужно будет сделать ровно то же самое, что и для кода плюсов, то есть уровень защиты одинаковый
Так делали на прошлой работе, и мне не известно ни одного случая успешного взлома системы, а поставок тысячи
Но если цель - исключить нелицензионный запуск, то решение необходимо дополнить каким-нибудь hasp sentinel и вообще службой лицензирования
Дампим память и сохраняем весь js на диск
источник

АП

Алексей Попов in Node.js — русскоговорящее сообщество
Sergey 🛸
Дампим память и сохраняем весь js на диск
Во-первых, всё равно это не так просто сделать. В памяти же не чистый код хранится. Попробуй как-нибудь, расскажешь о результатах
Во-вторых, я же написал, что для исключения нелицензированного использования этого мало. Можно даже не имея исходников обмануть систему просто зная как она работает. Поэтому для настоящей защиты нужна какая-нибудь система лицензирования, тот же hasp. Емнип, случаи обхода hasp sentinel пока не известны
источник

VD

Viktar Daniliuk in Node.js — русскоговорящее сообщество
Подскажите, как переписать fs.reddir с помощью async/await?
источник

IL

Ihor Levchenko in Node.js — русскоговорящее сообщество
а есть ли какая библиотека для ноды которая эмулировала бы querySelector() и все окружение дома?
скажем, аналог для cheerio
источник

Z

Zaff in Node.js — русскоговорящее сообщество
Ihor Levchenko
а есть ли какая библиотека для ноды которая эмулировала бы querySelector() и все окружение дома?
скажем, аналог для cheerio
Эмулировала бы квери селектор? Это как жквери что-ли?)
источник

IL

Ihor Levchenko in Node.js — русскоговорящее сообщество
Zaff
Эмулировала бы квери селектор? Это как жквери что-ли?)
ну я имею ввиду скреппинг библиотеку, у которой бы был синтаксис на обход хтмл тегов и селекторов к хтмл-у в стиле querySelector-а
источник

IL

Ihor Levchenko in Node.js — русскоговорящее сообщество
у cheerio какие-то странные баги с :nth-child()
источник

PS

Pavel Shakhov (pongo) in Node.js — русскоговорящее сообщество
Ihor Levchenko
а есть ли какая библиотека для ноды которая эмулировала бы querySelector() и все окружение дома?
скажем, аналог для cheerio
Jsdom?
источник

IL

Ihor Levchenko in Node.js — русскоговорящее сообщество
о, это оно
спасибо
источник

AZ

Artem Zuev in Node.js — русскоговорящее сообщество
Защитить в некоторой степени можно, но защита должна быть многоуровневая:
- обфускация кода обязательно
- физическое хранение кода в криптохранилище, подключать его при старте сервера и активировать только в память и только с консоли
- исключить любые обращения к ресурсам/управлению сервером по сети
- сам сервак запереть в "клетку" с доступом "под запись"

И спать спокойно процентов на 10...

И лайф-хак - грохнуть сисадмина сразу после запуска системы - сразу величина спокойствия вырастет до 80-85%
источник

АП

Алексей Попов in Node.js — русскоговорящее сообщество
да не нужна обфускация
достаточно шифрования в ресурсах
а на этапе выполнения вытащить код из памяти - ну такое, пусть сначала для простого кода ноды попробуют это сделать :)
источник

АП

Алексей Попов in Node.js — русскоговорящее сообщество
Но вообще задача ограничения доступа к исходникам сама по себе выглядит странно
Вот запрет модификации и невозможность нелицензированного запуска - это адекватная задача. Скрывать исходники для её реализации вообще не обязательно
источник

W

Wacker in Node.js — русскоговорящее сообщество
Ребят кто нибудь юзает proton native
источник

LN

Long Nguen in Node.js — русскоговорящее сообщество
друзья привет , вопросик , кто с вебсокетом работает , мне присылают сообщением обект я по нему запускаю через setInterval  задачу и кидаю клиенту данные каждые 5 секунд, потмо клиенту нужны данные с другими параметрами, и получается я даю и прошлые данные и еще и новые
источник

LN

Long Nguen in Node.js — русскоговорящее сообщество
как не отключая подключение остановить отменить предыдущее задание
источник