Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

reebr

Ofuscar código

Recommended Posts

Boa noite.

 

Uma parte do site que estou fazendo, irá usar a API do bitly para encurtar links. Algumas informações eu gostaria de manter ofuscadas, como a API KEY e o meu LOGIN, não precisa ser nada de outro mundo, só não quero que o usuário (se for fuçar no código) NÃO a veja como uma simples string.

 

Fiz o seguinte:

Entrei aqui e testei algumas coisas: http://jsbin.com/amecoq/2

 

Se, eu fizer isso:

alert([(+[[]+(1+1<<1)+([]&111)+(1e1>>1|1)+(1^1<<1)+(11.11>>11.11)+(1<<1+1)+(11111.1%11.1*111e11|!1)+(-~1<<1<<1)+(1e1>>1|1)+(~1+1e1+~1)+(1^1<<1)])[[(!!1+[])[+!1]+[[{}]+[{}]][111>>111][1+[]]]+([1/!{}+[]][+[]][([]+{}+[])[11-1>>1]+[[],[{}]+[{}]][1|1>>1][1<<1>>1]+([][111]+/&/)[1|1>>1]+[{},1e1,!{}+{}][1<<1][1<<1^1]+(11/!{}+[])[1-~1<<1]+[!!/-/+[]][+!1][1<<1>>1]+([]+/^/[1])[.1^!1]+[{},[]+{11:11}+[],1][[]+1][11-~1+11>>1]+(!![111]+{})[1^1]+([{}]+{})[1&11>>1]+[[]+!!/-/][+!1][1|1]]+[])[([]+!1)[1^1<<1]+[/=/,[]+[][11]][~~1][[]&1]+([]+{}+[])[1<<!1<<1]+[1,![11]+/~/][1|1>>1][1|1<<1|1]+(11/[]+[])[1-~1<<1]+[[]+!!1][!1&.1][+!!1]]((11^1<<1)+((+(111<111))==([]+/-/[([]+!![1])[!1&.1]+([]+!!{})[1-~1]+([]+![1])[1^1<<1]+(!!/-/+{})[111.111>>111.111]])[!1&.1]),1-~1<<1)](~1-~1e1<<1<<1)]);

O resultado do alert será "Imaster".

 

Legal, o método funciona com alert. Mas e quando eu for usar isto para fazer a requisição, tem como eu "converter"? Vi que dá para comparar com regexp com o método test(), mas o problema não é comparar e sim transformar isso para uma string.

 

Tentei o método toString mas ele retornou: [object Object]

 

Se não for possível, tem uma forma melhor de "esconder" isso?

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não é necessário desfazer a ofuscação na hora de enviar, do mesmo jeito que o "alert" conseguiu entender a string a função de request também vai. O problema é que na hora que você fizer a request, não importa como a string esteja escondida no código, ela vai ser desofuscada antes de ser enviada, então qualquer um que saiba apertar "control + shift + i" no navegador vai poder pegar ela.

 

O melhor seria você fazer as requesst para o bitly através do seu próprio servidor utilizando AJAX, fazendo uma ponte entre navegador -> servidor -> bitly, mantendo as informações importantes em server-side e enviando para o navegador/usuário só o que interessa a ele.

 

Mas se você realmente não tem saída, o melhor que você pode fazer é ofuscar a string, como você já fez, apenas evitando que ela fica "hard-coded" nos scripts

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.