2012-02-21 10 views
5

Estoy implementando un servidor REST.¿Qué es mejor, pasar nombre de usuario/contraseña como parámetros en el encabezado HTTP o en el cuerpo HTTP?

Voy a recibir el nombre de usuario, requestid y contraseña para cada solicitud del usuario.

Tengo dos opciones, puedo pedir a los usuarios que pasen esos tres parámetros en el cuerpo http o en el encabezado http.

¿Cuál será la mejor forma de implementación y por qué?

Gracias de antemano.

+0

No debe transmitir credenciales de autenticación en texto sin formato. ¿Qué estás intentando lograr? Autenticación de usuario, gestión de sesión? –

+0

autenticación de usuario para cada acceso. y podemos enviar un valor cifrado tanto en el encabezado como en el cuerpo. Entonces, ¿cuál será mejor? – Sarada

Respuesta

2

Encabezado!

Si entiendo su pregunta, tiene algo que va a aprobar con cada solicitud. Eso significa que si quieres admitir solicitudes seguras como GET y HEAD, solo tienes dos opciones: las cabeceras HTTP o la URL (normalmente a través de parámetros de consulta).

Dado que incluye información de autenticación, debe evitar ponerla en la URL. Aparte de eso, dices que está encriptado y una capa adicional de protección sería hacerlo a través de SSL, pero el encabezado y el cuerpo son igualmente seguros/vulnerables, por lo que no hace diferencia desde el punto de vista de la seguridad.

Ponerlo en el encabezado también lo desacopla del estado de la aplicación y también del tipo de medio, lo que es bueno. Si desea admitir formularios JSON, XML y XHTML, no hay diferencia en sus parámetros de autenticación.

+0

gracias Jhericks. Aclaró mis puntos. – Sarada

Cuestiones relacionadas