Ho un sito Web ASP.NET MVC che utilizza WebAPI, SignalR.Come proteggere un controller su WebAPI per l'utilizzo solo dalla macchina locale
Desidero che il mio server (lo stesso server che ospita il sito Web) effettui richieste HTTP a un controller WebAPI: desidero farlo in modo che possa collegarmi alla funzionalità SignalR del mio sito web.
Voglio fare in modo che gli utenti dei siti Web non possano accedere ai metodi sul controller WebAPI, ma il server può.
Ho guardato le opzioni per la protezione richieste WebAPI generale e sembra che ho le seguenti opzioni disponibili per me:
- Invia un nome utente e una password su ogni richiesta AKA autenticazione di base
- Generare un "Certificato cliente" e inviarlo a ogni richiesta
Questi sono gli unici due metodi che sembrano funzionare, ma mi chiedo se è eccessivo usare questi metodi se le richieste provengono da localh ost (lo stesso server).
È eccessivo, esiste un modo più semplice per limitare le richieste HTTP dalla macchina locale a un controller WebAPI?
Ottimo, ho appena iniziato la ricerca su 'IsLocal' ma non sono sicuro se sia sicuro o meno. Convalida se l'IP è '127.0.0.1',' :: 1' o l'indirizzo IP della macchina corrente. Mi chiedo solo se può essere falsificato. – Luke
Ci sono state domande esattamente su SO (http://stackoverflow.com/questions/19010217/is-request-islocal-secure-or-can-it-be-spoofed) ma non ho trovato alcuna risposta suggerire che può essere falsificato. Anche le cattive intestazioni inoltrate da un proxy non dovrebbero essere in grado di ingannarlo. Questa risposta arriva addirittura a definirlo completamente affidabile. http: // StackOverflow.it/questions/7148821/request-islocal –
Grande, ho appena decomplicato e ho visto il codice. Pubblicherò anche le mie conclusioni come risposta. Grazie! – Luke