Sugiro você validar qualquer dado sensível ou restrição de acesso via back end, nunca no client, nem mesmo obfuscando código.
Não sei onde você está hospedado seu server, mas em caso de phishing, spam, DDos ou qualquer outra coisa, valide o acesso pelo servidor. Tu pode bloquear o acesso pelo ip, token de acesso e outras coisas.
E mais uma dica/sugestão, não faça seus usuários baixarem um arquivo zip com um node_modules e um index.js obfuscado. Isso tira toda a credibilidade do projeto. Sugiro você refatorar toda essa parte e tornar as coisas mais claras.
Se seus usuários quiserem burlar ou fazer ataque em massa no teu server, eles vão. Nem o Google, Facebook e outras cambadas estão livres disso.
E não se preocupe se vão reutilizar seu código, copiar ou etc. Se fizerem isso, encare como uma homenagem, porque você fez um trabalho digno de cópia. (no bom sentido claro).
Arrume esses detalhes e dê um exemplo de como usar o teu banco de dados (sem ter que baixar zip nenhum) que vai ficar show.
Ok, eu tive uma ideia enquanto já estava deitado e prestes a dormir e vim codar, ainda vai conter prováveis bugs, mas o resultado ficou assim:
- Apartir do momento que usarem o "connect" do módulo é verificado se existe na pasta local dentro de um .json que é automaticamente baixado pela fsdb o seguinte item:
createdBanks
, caso ele exista, ok, o código não será executado novamente, caso não, partil criar o sistema de criação de contas no projeto do usuário.
-
Esse arquivo que foi passado para a "main" do projeto nomeado de saved é o antigo arquivo no seu formato original, sem ser obfuscado ( e até melhorado ).
-
Como mostrei o código, da para ver que ele pega a package.json e adiciona um script da fsdb, que executa o arquivo de criação
- Os arquivos acabaram ficando assim, o uso da pasta de downloads para a CDN, uploads também para a CDN e o arquivo "fsdb.js" criado pelo código.
- Eu acabei fazendo o sacrifício de instalar os módulos automaticamente....
Obrigado pelo seu Feedback e ajuda com o projeto, caso tenha mais algum comentário, faça!
Seu feedback e de todos são bem vindos. Assim como o próprio Deschamps
diz: "Levem críticas como algo construtivo."
Amanhã / Hoje farei o envio para o Github e atualização nas documentações.
Entendo perfeitamente oq diz, obrigado por escrever isso e vou lhe dar um retorno assim que eu modificar esse "ambiente de criação". Caso queira também pode dar uma estrelinha na Github para ser notificado, além de que também irá me ajudar!
Minha ideia é transportar isso e deixar o mais usual possível, assim como disse, usar algum script de execução via npm run seria uma boa ideia, porém vem a questão de módulos...
Obrigado pelo seu feedback.
Fora que pode conter qualquer coisa nesse script obfuscado e dentro da node_modules. Não passa confiança.
E não foi tão dificil fazer uma engenharia reversa nesse index.js