2011-11-02 27 views
11

Tengo una aplicación móvil (iPhone y Android) que permite al usuario para iniciar sesión en su cuenta, Preferencias de cambio, etc ...transacción segura entre la aplicación móvil y la lámpara

Quiero añadir una nueva característica en el que el usuario puede compre productos a través de su dispositivo o actualice su servicio. Todo se ejecutará desde el dispositivo y quiero hacer que cada transacción que haga el usuario se sincronice con el servidor web.

Tengo la configuración de HTTPS en mi servidor. Me gustaría saber si:

  1. ¿Es una buena práctica? o debería simplemente decirle al usuario que use nuestro sitio web
  2. Si la respuesta es "sí", ¿HTTPS solo es bueno para procesar estas transacciones?

Gracias

Respuesta

14

sí, es una buena práctica.

antes que nada SIEMPRE use HTTPS.

asegúrese de que su certificado sea válido y de confianza.

para iPhone:

para android:

segundo cifre sus datos.

Algoritmo de cifrado o encriptación rsa hará el truco.

datos de paso utilizando GET/POST no deben enviarse en texto sin formato como:? User = myuser & pass = mypass. en su lugar, use algo como? h28JduDak30fT1pfgmSnShNms762023lflsfdj2h4J. luego, en su servidor simplemente tiene que descifrarlo usando solo su teléfono y el servidor lo sabe.

código de ejemplo para iPhone:

NSString *encrypteddata =[NSString stringWithFormat:@"key=enryptedstring"]; 
NSData *data = [encrypteddata dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES]; 
NSString *datalen = [NSString stringWithFormat:@"%d", [data length]]; 
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease]; 
[request setURL:[NSURL URLWithString:@"https://yourserver:443/loginscript"]]; //:443 very importantz 
[request setHTTPMethod:@"POST"]; 
[request setValue:datalen forHTTPHeaderField:@"Content-Length"]; 
[request setValue:@"application/x-www-form-urlencoded charset=utf-8" forHTTPHeaderField:@"Content-Type"]; 
[request setHTTPBody:data]; 

idea similar para android

continuación, en el servidor se puede descifrar $ _POST [ 'clave'] y hacer su lógica de inicio de sesión (u otros)

aquí hay más recurso que le ayudará a:

nota: para android que shoud echar un vistazo a las HTTPComponents

leer más

+0

muchas gracias por su ayuda – Tech4Wilco

Cuestiones relacionadas