Como proteger as credenciais de login para o Ajax
Muitos JavaScript e outros clientes que fazem uso de REST ou outros serviços da web têm que usar as credenciais de autenticação para permitir o acesso do usuário final a esses serviços.
Existem várias maneiras de obter as credenciais para o servidor. Um método popular está usando Auth HTTP1.1, ou digerir ou básica. O problema com este método é que ele não esconde as suas credenciais do mundo. Qualquer escuta dentro em seu tráfego na web é essencialmente capaz de obter as credenciais dos cabeçalhos.
Outro método, talvez mais facilmente utilizados pela maioria, é incluir as credenciais de login do POST ou GET chamadas feitas para web services. E isso é tão exposta.
http://mywebserver.com/mywebservice/?user=admin&pass=1234
não fazer para o transporte de segurança muito elevado.
SSL é realmente a única maneira de ter certeza de que suas credenciais permanecem escondidos do resto do mundo.
Gerado Server Tokens para disfarce credenciais de login
Tomei até uma tática diferente. Corre-se o seguinte curso:
- O cliente solicita um token randômico do servidor para usar durante sua sessão.
- Uma vez que o cliente recebe o token concatena o token para o fim da senha, e depois faz um hash MD5 sobre a coisa toda.
- Quando as credenciais são necessários pelo servidor, o cliente passa user = 'username' e passhash = [md5 (senha + token)]
- O servidor compara com o mesmo processo em que é final. Se os dois hashes corresponderem, em seguida, as senhas usadas nos hashes tem que ser o mesmo também.
A beleza deste método é que, embora seja um método 100% confiável para identificar corretamente as credenciais corretas, também é impossível reverter o processo e obter a senha de volta.
Levar as coisas um passo adiante
O passo inicial para mim foi usar [md5 (senha + token)]. Eu já actualizou usar uma variedade de informações que eu gostaria de esconder:
[Md5 (username + senha + + my_ip token)], que tem algumas construído em cross-site scripting obfuscation construído dentro
Um hacker desonesto e muito zeloso ainda pode roubar a sua sessão com algum esforço. E você pode ter certeza de que não vale a pena dele / dela enquanto regularmente mudar o símbolo para a sessão atual.
KnowledgeTree API JavaScript
Como um desenvolvedor de KnowledgeTree Estou atualmente trabalhando em conjunto de bibliotecas JavaScript que irá expor a funcionalidade do servidor através de uma API. Um componente central do KnowledgeTree é de segurança estritas. O método acima (ou uma variante dela) está em vias de ser implementada para KnowledgeTree Japi.
* KnowledgeTree é OpenSource Document Management System para SMB às entidades de nível empresarial.
Avante e para cima!

29 de julho de 2009 - 14:39
Percebo que muitas pessoas vêm aqui procurando o script que estou usando MD5. Há muitos deles por aí, eu escolhi usar esse:
http://kevin.vanzonneveld.net/techblog/article/javascript_equivalent_for_phps_md5/
Lembre-se de incluir a função utf8 do mesmo site para garantir md5 funciona.