API personalizzata sicura [duplicato]

0

Creo client desktop per un e-shop e questo client utilizzerà alcune funzioni utilizzando l'API di e-shop, come:

GetOrders
UpdateOrder
SetOrder
etc...

Sto creando un'autenticazione personalizzata per quel client, ma non lo so è sicuro contro gli attacchi.

Tutte le comunicazioni con client-server avvengono tramite HTTPS.

Funziona così:

  1. Alla prima richiesta il cliente deve fornire nome utente e password a server. Quindi il client cancellerà quella password che l'utente immette e poi il client invierà una richiesta al server con nome utente e hash password.

  2. Il server confronta la password con hash con la password con hash nel DB per quello nome utente, se è uguale allora il server genera token (come la chiave API) con un tempo di vita limitato e questo token tornerà al client.

  3. Il client utilizzerà questo token nelle future richieste.

  4. A ogni server di richiesta token riuscito si rinnoverà la durata del token.

Le richieste dovrebbero apparire così:

POST /orders/get HTTP/1.1
Host: example.com
token=123456789&orderid=10

Esistono raccomandazioni di sicurezza se dovessi utilizzare le richieste POST o GET? POST non è più sicuro allora OTTIENE? Ad esempio, POST memorizza i dati nel corpo della richiesta HTTP, ma GET li memorizza nell'URL.

    
posta tomsk 02.09.2018 - 13:05
fonte

1 risposta

1

Generalmente dipende da cosa vuoi fare con i dati. Ci sono molte differenze tra POST e GET. Se si desidera trasmettere dati al proprio server, preferisco POST. È un po 'più sicuro di GET perché non invia le informazioni con l'URL e non vengono memorizzati dati. Se si utilizza un PC condiviso, è possibile che un altro utente stia cercando se gli URL sono memorizzati. Forse un ragazzo ha inviato la sua password o altri dettagli, saranno memorizzati sul PC e un altro lo troverà nella cronologia.

Get è piacevole da usare se si desidera visualizzare un messaggio all'utente. Ad esempio: un ragazzo tenta di accedere, ma ha sbagliato a digitare il suo nome, quindi l'accesso non è garantito. Il webserver ora può rispondere in questo modo - > serverurl.com/login?error=1

Se l'errore è impostato su uno, è possibile visualizzare il messaggio errato. Di seguito puoi trovare più differenze tra POST e GET.

    
risposta data 02.09.2018 - 14:14
fonte

Leggi altre domande sui tag