Cómo proteger las credenciales de acceso para el Ajax
Muchos de JavaScript y otros clientes que hacen uso de REST u otros servicios de Internet han de utilizar las credenciales de autenticación para permitir el acceso de los usuarios finales a dichos servicios.
Hay varias maneras de obtener las credenciales para el servidor. Un método popular es el uso HTTP1.1 Auth, ya sea digerir o de base. El problema de este método es que no oculta sus credenciales en el mundo. alguien escuchando en el tráfico de su web es fundamentalmente capaz de obtener las credenciales de los encabezados.
Otro método, probablemente más fácilmente utilizadas por la mayoría, es incluir a las credenciales de inicio de sesión en el POST o GET están realizando llamadas a los servicios web. Y eso es tan expuesta.
http://mywebserver.com/mywebservice/?user=admin&pass=1234
no hace a la seguridad del transporte muy alto.
SSL es realmente la única manera de estar seguros de que sus credenciales permanecen ocultos del resto del mundo.
Servidor de creación Tokens para ocultar las credenciales de acceso
He tomado una táctica diferente. Se ejecuta el siguiente curso:
- El cliente solicita un símbolo al azar desde el servidor para utilizar durante todo su período de sesiones.
- Una vez que se recibe la señal del cliente concatena el token al final de la contraseña, y luego hace un hash MD5 de la cosa entera.
- Cuando las credenciales son necesarias para el servidor, el cliente pasa usuario = 'username' y passhash = [md5 (contraseña + token)]
- El servidor compara esto con el mismo proceso en su final. Si los dos valores hash coinciden, las contraseñas utilizadas en los hashes tiene que ser la misma también.
La belleza de este método es que si bien es un método 100% confiable para identificar correctamente las credenciales correctas, también es imposible revertir el proceso y obtener la contraseña de nuevo.
Tomando las cosas un paso más allá
El paso inicial para mí fue utilizar [md5 (contraseña + token)]. Ahora he actualizado, utilizan una variedad de información que desea ocultar:
[Md5 (nombre de usuario + contraseña + + my_ip token)], que ha construido en algunos site scripting ofuscación-cross construido adentro
Un hacker tortuosos y celoso muy quieto puede secuestrar la sesión con un poco de esfuerzo. Y usted puede asegurarse de que no vale la pena su tiempo cambiando periódicamente el token para el actual período de sesiones.
Knowledgetree API de JavaScript
Como desarrollador de knowledgetree Actualmente estoy trabajando en el set de bibliotecas JavaScript que pongan en peligro la funcionalidad del servidor a través de una API. Un componente esencial de knowledgetree es que es de seguridad estrictas. El método mencionado arriba (o una variante del mismo) se encuentra en proceso de ser implementadas para knowledgetree Japi.
* Knowledgetree es un sistema de Gestión Documental Open Source para la PYME a las entidades a nivel empresarial.
Adelante y hacia arriba!

29 de julio 2009 - 14:39
Me he dado cuenta que mucha gente viene aquí en busca de la secuencia de comandos que estoy usando MD5. Hay un montón de ellos por ahí, he optado por utilizar esta otra:
http://kevin.vanzonneveld.net/techblog/article/javascript_equivalent_for_phps_md5/
Recuerde que debe incluir la función utf8 desde el mismo sitio para asegurar md5 obras.