security - Transacción segura entre la aplicación móvil y LAMP
transactions mobile-devices (1)
sí, es una buena práctica.
en primer lugar SIEMPRE use HTTPS.
asegúrese de que su certificado sea válido y de confianza.
para Iphone:
- iPhone: autenticación cert de cliente HTTPS
- https://discussions.apple.com/thread/1652697?start=0&tstart=0
para Android:
- Confiar en todos los certificados que usan HttpClient a través de HTTPS
- Aceptar un certificado para HTTPs en Android
segundo encripta tus datos.
cualquier algoritmo de encriptación o encriptación rsa hará el truco.
pasar datos usando GET / POST no debe 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
luego en su servidor puede descifrar $ _POST [''clave''] y hacer su lógica de inicio de sesión (u otras)
aquí hay más recursos que lo ayudarán a:
- iPhone + envío de datos desde el iPhone al servidor como formato XML
- iPhone: autenticación cert de cliente HTTPS
nota: para Android debes echar un vistazo a los HTTPComponents
Lee mas
Tengo una aplicación móvil (iPhone y Android) que permite al usuario iniciar sesión en su cuenta, cambiar preferencias, etc.
Quiero agregar una nueva característica donde el usuario pueda comprar productos a través de su dispositivo o actualizar 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 configuración HTTPS en mi servidor. Me gustaria saber si:
- Es una buena práctica? o simplemente debería decirle al usuario que use nuestro sitio web
- Si la respuesta es "sí", ¿HTTPS solo es bueno para procesar estas transacciones?
Gracias