Domanda

Ho una pagina e ha metodi web che posso usare questi dalla pagina aspx tramite ScriptManager, mi chiedo se qualcuno può accedere a questi metodi dall'esterno della pagina, se è come posso proteggere i WebMethods?

È stato utile?

Soluzione

Non è possibile proteggere completamente i metodi Web. Dopotutto, se accedi a loro dalla tua pagina web, si accede direttamente dal browser del client.

È possibile aggiungere un parametro aggiuntivo che deve contenere una sorta di password / token una tantum e generarne uno quando viene visualizzata la pagina. Ciò renderà più difficile per qualcuno continuare a utilizzare il tuo servizio web senza effettivamente visitare il tuo sito.

Altri suggerimenti

I tuoi metodi web avranno lo stesso tipo di sicurezza delle tue pagine web. Se è necessario assicurarsi che siano accessibili in modo sicuro, verificare la presenza di una sessione valida, utente autenticato, ecc. Prima di consentire l'azione. La richiesta al metodo web dovrebbe includere i vari cookie necessari per determinare se l'utente che ha effettuato la richiesta è stato autenticato. In base all'identità dell'utente autenticato, ai suoi ruoli, ecc. È possibile determinare se la richiesta deve essere elaborata. Se stai utilizzando la configurazione web per proteggere le tue pagine, la sicurezza applicata alla pagina dovrebbe essere applicata anche ai metodi web sulla pagina.

Tieni presente che non puoi garantire che qualcuno non emetterà semplicemente la richiesta indipendentemente da un browser (vale a dire che la richiesta proviene sempre dall'interfaccia utente dell'applicazione). Devi eseguire gli stessi controlli di sicurezza che utilizzeresti per una qualsiasi delle tue pagine.

Nota qui che sto parlando di proteggere i metodi web aggiunti a una pagina ASPX. Per i servizi web , l'autenticazione e l'autorizzazione possono essere gestite in modo completamente diverso. Ad esempio, le credenziali possono essere richieste per ogni richiesta e possono far parte di una "busta". o un parametro sul metodo stesso. La protezione dei servizi Web è probabilmente oggetto di una domanda a sé stante.

Sì, l'aggiunta dell'attributo WebMethod rende tale metodo richiamabile in remoto, il che significa che è possibile chiamarlo utilizzando javascript, ad esempio. In poche parole, non dovresti esporre WebMethods che non vuoi che terze parti possano chiamare. Ma per ulteriori informazioni sulla sicurezza e sui servizi Web, consultare: http: // msdn .microsoft.com / en-us / magazine / cc188947.aspx

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top