Explicando o Uglify (segurança no JavaScript e obfuscation)
Vložit
- čas přidán 26. 06. 2024
- Curso gratuito de programação WEB
↪discover.maykbrito.dev
Este vídeo explora estratégias avançadas para proteger seu código JavaScript em projetos de desenvolvimento web. Discutimos como utilizar ferramentas como Uglify para compactar e dificultar a leitura do código, essencial para prevenir cópias não autorizadas e pirataria. Além disso, abordamos técnicas de obfuscation para tornar o código ainda mais complexo e desafiador de entender para terceiros. Este conteúdo é indispensável para desenvolvedores que buscam fortalecer a segurança de seus aplicativos web e proteger suas ideias e propriedades intelectuais de forma eficaz.
- [00:11]( • Explicando o Uglify (s... ) 🛡️ Uglify é útil para compactar código JavaScript e dificultar cópias, mas para evitar pirataria na web, considere oferecer parte do frontend como serviço.
- [01:27]( • Explicando o Uglify (s... ) 🤖 Utilizar editores como Mônaco pode dificultar a cópia de código frontend, mas não é possível evitar completamente.
- [02:36]( • Explicando o Uglify (s... ) 🛠️ Aplicativos web devem manter a lógica crítica no backend para proteção efetiva contra cópia e engenharia reversa.
- [03:43]( • Explicando o Uglify (s... ) 🔒 Além de Uglify, considere técnicas de ofuscação (obfuscation) para tornar o código ainda mais difícil de ser entendido.
- [05:08]( • Explicando o Uglify (s... ) 📝 Para proteger ideias, considere patentear e atualizar frequentemente seu código, além de manter uma estratégia de negócios robusta.
Mais conteúdo?
↪ maykbrito.dev
Opa, minha pergunta virou vídeo!
Na verdade, só jogar em uma IA que ela entende mesmo "minificado" ou "uglyficado". E se você pedir pra ela escrever de forma legível, ela vai escrever.
Fala @GVensino
A outra alternativa é usar renderização do lado do servidor. Usar Next.js por exemplo. Ele ainda vai conseguir remontar a funcionalidade remontando e desofuscando o Javascript que o Next gerar, mas não vai ser o seu código propriamente, porque o Next pega seu código (escrito em JSX) e transforma o que ele consegue em HTML puro e insere o que precisa de JS pra dar responsividade.
@@oinconquistado Depende do código
Sabia que conhecia esse nome kkkk. Te sigo ❤
Seria possível se ele usasse Webassembly. Como é um simulador, talvez até faça mais sentido, já que ele falou que a latência é importante.
Mas seria mais como um obfuscador mesmo.. Ainda teria jeito de fazerem a cópia 100%. Mas ai daria pra usar a ideia de um login (mesmo que não tenha backend), daí o cara teria que crackear igual um programa de PC, editando o binário.
Uma coisa que aprendi indo em alguns startup weekend: Se a sua ideia de negócio pode ser replicada por qualquer um (ou seja, todo o valor do seu negócio está apenas no seu software, e não no seu network, entendimento de mercado etc), então você não tem uma ideia de negócio. Se a barreira de entrada é 0, mesmo que seu negócio comece a funcionar, vai aparecer alguém com mais dinheiro que você e te engolir.
A parte mais importante do seu business é seu conhecimento sobre o mercado/network/visão.
Obrigado pela resposta! Vou analisar melhor a possibilidade de WebAssembly
Baixa visão! Obrigado por compartilhar com a gente Rapha!
Raphael, nesse caso o simulador só seria liberado localmente depois que receber um certo dado do servidor (de que o login está correto e talvez mais alguma informação codificada e de data/hora)? Ou alguma coisa mais rebuscada que isso?
@@GVensino Cara, não entra nessa pira. Se desse pra fazer isso, não existia software crackeado, ou hacker para jogos online.
A partir do momento que o código está do lado do cliente, ele faz o que quiser com ele. O que existe são técnicas para dificultar apenas.
O que eu disse sobre webassembly só iria dificultar, mas não impedir. Você poderia fazer um login também, e colocar um lazy-load, que só baixa o resto do código depois do usuário ter logado. Pode checar se tem mais de uma sessão por usuário, uglify, etc etc... Tudo isso só dificulta, mas impedir vai ser impossível se o código roda no cliente.
Melhores vídeos
Olá mayk, sigo seu canal e estou aprendendo algumas mecânicas de Electron. Você tem alguma aula explicando como fez as modificações no seu Notion? Na aula de electron você falou que estava usando um Notion com algumas modificações pessoais. (Eu sei que é uma aula de 3 anos atrás 😅😅)
Faz um app com Tauri. Não testei mas eles prometem que é dificílimo fazer a engenharia reversa.
Eu uso um site de uglify.. Mas só pra dificultar.. pq o proprio site tem o reverso.. se o cara pegar o codigo e pesquisar um pouco, acha facil..
Senao vc teria q ter um "Md5" do javascript
Tem projeto open source disso. Eu mesmo pretendo ( ja iniciei ) fazer algo open source disso pr .Net (Blazor) ... Nao pira amigão....
e será que não existe alguma IA ou serviço que analisa esse código "bagunçado e minificado" e da sentido as funções e nomes? (pergunta sincera).
Pior que tem 😅, o negócio é deixar a parte funcional no Back, deixa o front só pra ler as funções.
Se eu criar um bot para vender que tem acesso a uma api que é minha mas nao quero que a pessoa veja como foi feito a questao de api e tals e ela so use o bot sem modificar? Seria bom isso que vc falou?
Se a api é sua, já está tranquilo, pq os dados estão no back. Mesmo que a pessoa possa ver a rota, ela deverá se autenticar pra acessar sua api. No caso do colega, praticamente o sistema dele inteiro estava na parte do front, o que fica complicado esconder algumas regras de negócio
@@maykbrito legal, vou criar um bot do Discord que trabalha bastante com js e depois tentar vender ou doar mas sem que as pessoas precise mexer ou alterar algo, eu poderia deixar um Json para modificar algumas coisas básicas como nome do bot, id do Discord etc...
Um júnior foi detectado
Poxa kkk, não sou junior.
@@GVensino relaxa mano. Daqui pra frente a gente chama o fernandocosta3307 que é sênior supremo e sabe as respostas de todas as dúvidas do universo. Desinstala o google da internet, pq temos o fernandocosta3307 nos comentários 🎉
@@maykbritokkkkkkkkk
@@maykbrito kkkkkk
Github fuxa o projeto que o cara quer fazer