Le password sono sicure da inviare tramite POST, senza SSL in un'app per iOS?

0

È sicuro pubblicare le password sul mio server web in questo modo?

NSURL *url=[NSURL URLWithString:@"http://mywebsite/test/register.php"];

NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];

NSString *postLength = [NSString stringWithFormat:@"%lu", (unsigned long)[postData length]];

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];

NSError *error = [[NSError alloc] init];
NSHTTPURLResponse *response = nil;
NSData *urlData=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];

if ([response statusCode] >= 200 && [response statusCode] < 300)
{
    NSString *responseData = [[NSString alloc]initWithData:urlData encoding:NSUTF8StringEncoding];
    NSLog(@"Response ==> %@", responseData);
}

Il mio server non ha https o certificati, quindi è ancora sicuro usando il metodo sopra?

    
posta Arian Faurtosh 04.05.2014 - 23:21
fonte

3 risposte

6

No, perché sono trasportati in chiaro su Internet. Anche quando la tua app o il tuo sito è http best practice devi fare almeno il post contenente il nome utente / password utilizzando la crittografia / ssl.

    
risposta data 05.05.2014 - 00:02
fonte
3

La richiesta inviata mancherà dell'integrità e della riservatezza. Cioè:

  1. L'app non può essere certo che invii la password al server desiderato (ad esempio un utente malintenzionato potrebbe avvelenare ARP o DNS per reindirizzare le richieste al proprio server) e, a sua volta, non può essere sicuro che la risposta sia autentica.

  2. La password potrebbe essere divulgata da una terza parte che ha intercettato il messaggio (ad esempio se l'app veniva utilizzata su una rete wireless aperta).

Questo non è affatto diverso da un'applicazione web che invia una password nello stesso modo. Qualsiasi dato inviato in questo modo è vulnerabile e l'uso di SSL / TLS non dovrebbe essere limitato alle password.

    
risposta data 05.05.2014 - 00:52
fonte
0

No, utilizza un'autorità di certificazione gratuita come letsencrypt.org o startssl.com

Non dovresti inviare password su http perché sono vulnerabili a un uomo nell'attacco centrale

    
risposta data 08.12.2016 - 13:50
fonte

Leggi altre domande sui tag