2011-11-02 18 views
11

Mam Mobile App (iPhone i Android), która pozwala użytkownikowi zalogować się do swojego konta, zmień prefs etc ...Bezpieczna transakcja między aplikacji mobilnej i lampy

Chcę dodać nową funkcję, gdzie użytkownik może kupuj produkty za pośrednictwem jego urządzenia lub ulepszaj jego usługę. Wszystko będzie uruchamiane z urządzenia i chcę, aby każda transakcja była wykonywana przez użytkownika, który zostanie zsynchronizowany z serwerem sieciowym.

Mam ustawienia HTTPS na moim serwerze. Chciałbym wiedzieć, czy:

  1. To jest dobra praktyka? czy powinienem po prostu powiedzieć użytkownikowi, aby skorzystał z naszej strony internetowej?
  2. Jeśli "tak", czy sam HTTPS jest dobry do przetwarzania tych transakcji?

Dzięki

Odpowiedz

14

tak to dobra praktyka.

przede wszystkim ZAWSZE korzystaj z HTTPS.

upewnij się, że Twój certyfikat jest ważny i zaufany.

do re:

android:

sekundowe szyfrowanie danych.

dowolny algorytm szyfrowania lub szyfrowanie RSA wystarczy.

przekazywanie danych za pomocą polecenia GET/POST nie powinno być wysyłane w postaci zwykłego tekstu, np .:? User = myuser & pass = mypass. zamiast tego użyj czegoś takiego? h28JduDak30fT1pfgmSnShNms762023lflsfdj2h4J. następnie na swoim serwerze wystarczy odszyfrować go za pomocą soli tylko telefon i serwer wie.

przykładowy kod dla 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]; 

podobny pomysł do android

następnie na serwerze można odszyfrować $ _ POST [ 'klucz'] i zrobić swoją logikę logowania (lub innych)

tutaj bardziej zasobem, który pomoże ci:

uwaga: dla Androida ty powinien spojrzeć na HTTPComponents

czytaj więcej

+0

Dziękuję bardzo za pomoc – Tech4Wilco

Powiązane problemy