Mysql
 sql >> Database >  >> RDS >> Mysql

Come posso consentire l'accesso al mio database MySQL solo dalla mia app iOS? (Utilizzando webapp come gateway per db)

Come affermato in precedenza, non è possibile una sicurezza al 100%. Ma ci sono diverse soluzioni che messe insieme danno grande sicurezza.

Https

Come fai notare, questa è una parte importante , in quanto impedisce l'annusamento.

Sessioni

Usa le sessioni e non consentire alcuna richiesta senza una sessione valida (tranne la prima, che deve autenticare l'app).

Impronta digitale

Controlla lo user agent e imposta intestazioni http aggiuntive, per ottenere un'impronta digitale univoca per la tua app. ( Qualcuno poteva annusare, ma aveva bisogno di usare curl o simili. )

Offusca le richieste

Crea la tua stringa di query e applica una funzione hash. Il server deve implementare la funzione inversa. ?43adbf764Fz invece di ?a=1&b=2

Crittografa

Questo fa un passo avanti. Usa un segreto condiviso per calcolare un hash. Sul server ripetere lo stesso. Questa è già una forte sicurezza. Per interrompere, è necessario eseguire il reverse engineering della tua app.

Utilizza un segreto condiviso univoco

Dici che è un'app per iOS. Al momento dell'installazione, iOS genera un token univoco. Chiedi alla tua app di registrare questo token sul tuo server. In questo modo hai un forte segreto condiviso unico per ogni installazione e non ci sarebbe modo di hackerare la tua app web.