Limita la richiesta solo all'app per Android e Iphone?

0

Ho un server ASP.NET/IIS. Voglio limitare il mio server ad accettare solo richieste da applicazioni Android e Iphone (IOS). Ho sentito parlare di HMAC. HMAC può aiutarmi?

    
posta user960567 11.02.2014 - 13:05
fonte

3 risposte

1

Mi dispiace, HMAC non farà quello che vuoi. La soluzione migliore sarebbe utilizzare uno schema di risposta alle sfide (supponendo che si tratti di un'applicazione mobile Android / iOS che accede al server). Avere codice oscurato nella tua app per rispondere a una richiesta di sfida utilizzando un algoritmo nascosto. Un utente malintenzionato potrebbe decompilare l'app, ma è la soluzione più vicina a ciò che sta richiedendo.

Se la comunicazione avviene attraverso una pagina web mobile, questo approccio non funzionerà.

Come hanno detto altre risposte, non puoi fidarti dell'input dell'utente (intestazioni). Sono banali da parodiare.

    
risposta data 11.02.2014 - 19:37
fonte
2

HMAC è un concetto crittografico per garantire l'integrità e l'origine (autenticazione) delle informazioni. Questo non è realmente applicabile per quello che stai cercando di fare.

In realtà, non c'è modo di garantire che una richiesta provenga da una piattaforma specifica, perché l'host riceve queste informazioni dal client. Un client può inviare qualsiasi informazione desideri manipolando (spoofing) le intestazioni HTTP, in particolare il campo User-Agent .

In conclusione, non puoi fidarti delle informazioni fornite dall'utente (client).

    
risposta data 11.02.2014 - 19:02
fonte
1

In linea di principio, impossibile. In pratica, puoi usare alcuni trucchi specifici per piattaforma come per Android. 1. Inserisci un token in scadenza da GCM link al dispositivo. 2. La richiesta dovrebbe contenere il token.

Il token può essere dipendente dal tempo, dall'id Android o entrambi. In tal caso, la persona ha bisogno di un dispositivo per ottenere il token e inviare le richieste. Almeno, saprai chi sta facendo le richieste e potrai bloccare la persona se necessario.

    
risposta data 06.03.2014 - 08:29
fonte

Leggi altre domande sui tag