Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Segurança IndexedDB

Olá, Umas das minhas preocupações em relação ao IDB, os dados que ficam armazenados localmente no navegador, ficariam expostos. Mesmo caso a persistência que esta no arquivo .js, se você clicar em inpecionar elementos, a pessoa pode ver como funciona, como armazena e alterar. Minha pergunta, tem como armazenar no IndexedDB e não deixar vísivel via console? segundo, como posso esconder(inspecionar elemento) minha persistência, meu código quando trabalho com js?

4 respostas

Olá,

Bem, com relação exposição do código, você pode usar a estratégia de ofuscar e minificar o mesmo, o que é bem comum para proteger sua aplicação e remover caracteres desnecessários para o funcionamento da aplicação. Um exemplo de ferramenta para fazer isso é o uglifyjs (https://github.com/mishoo/UglifyJS).

Com relação ao Indexed DB, o mesmo seria apenas uma base de dados local, e não deveria ser uma base de dados final. O uso dela, ao meu ver, seria para casos mais específicos, tornando possível guardar dados de forma mais inteligentes no browser, evitando interações desnecessárias com o servidor. Nesse cenários, os dados disponíveis para o usuário seriam apenas o que ele pode acessar.

Oi Glauder, o Marcelo foi sagaz quando diz:

Com relação ao Indexed DB, o mesmo seria apenas uma base de dados local, e não deveria ser uma base de dados final. O uso dela, ao meu ver, seria para casos mais específicos, tornando possível guardar dados de forma mais inteligentes no browser, evitando interações desnecessárias com o servidor. Nesse cenários, os dados disponíveis para o usuário seriam apenas o que ele pode acessar.

É por ai mesmo. No cliente, jamais você deveria ter dados sensíveis. Regras de negócio e dados sensíveis ficam no servidor.

No caso da nossa aplicação, não há problema algum os dados estarem no cliente.

Ok, bacana. Na questão do IndexedDB, não me refiro de utilizar o mesmo como banco final, um exemplo: trabalhando offline armazenar alguma informação no indexedDB, para posteriormente mandar para o banco final(SQL, NoSQL). Quando o valor gravado no indexedDB, não permitir a visualização.

Teria um exemplo na prática de utilização ou como utilizar o https://github.com/mishoo/UglifyJS ?

solução!

Glauber, não há necessidade de ofuscar qualquer script da app. Scripts não possuem regra de negócio, quem possui é o servidor.

Mas se ainda deseja ir por esse caminho esse post pode ajuda-lo:

http://stackoverflow.com/questions/20653578/how-to-uglify-javascript-using-uglifyjs-2

E a documentação com exemplos

https://github.com/mishoo/UglifyJS2/blob/master/README.md