Come proteggi il tuo servizio WCF?

6

a volte un programmatore ha un'idea brillante per proteggere il suo webservice creato con Windows Communication Foundation.

Vorrei sapere da voi, quali tecniche utilizzate per proteggere il vostro servizio WCF ed evitare che utenti non autorizzati lo consumino?

Ad esempio, si:

  • evitare Impersonare, usarlo solo se necessario
  • pubblica le informazioni sui metadati per impedire la manomissione
  • evitare il consumo di memoria imponendo una quota massima di dimensioni
  • crea un token del contesto di sicurezza per controllare il numero di sessioni
posta Junior M 06.11.2010 - 15:19
fonte

1 risposta

4

Ieri ho trovato un articolo , a video e codice sull'utilizzo delle chiavi API con WCF . Devo bloccare un servizio Web esposto pubblicamente come parte di ciò che dobbiamo fare per conformarci a PCI-DSS , e questo sembra il modo giusto per andare avanti. In passato, questa app e il webservice erano utilizzati solo da un'applicazione desktop VB4 / 5/6 (ora .NET), ma il capo vuole che si aprisse come servizio for-pay per gli altri.

Un cliente finanziario ha utilizzato uno schema con un elemento di informazioni sulla sicurezza nell'intestazione SOAP. Questo elemento aveva 4 attributi, uno era il nome dell'applicazione, gli elementi timestamp e guid sono stati usati per prevenire gli attacchi di replay e il 4 ° attributo era un hash basato sul nome dell'app, il timestamp e il guid, insieme a un "segreto" "(pensa a una password) memorizzata nel registro (per i server Windows o uno speciale file bloccato per i server basati su Unix, con" password "diverse per i nomi di applicazioni differenti). Il "segreto" (o password) era destinato a prevenire situazioni in cui un trojan nel datacenter sarebbe in grado di effettuare chiamate inappropriate o rispondere ad esse. Ovviamente non era WCF in quanto doveva supportare unix, windows e altri sistemi operativi nei data center, ma la tecnica era affascinante e poteva essere utilizzata altrove. Poiché utilizzavano la riscrittura dell'URL, l'elemento di informazioni sulla sicurezza non veniva visualizzato nei WSDL, era necessario conoscerlo dalla documentazione che solo le persone autorizzate ricevevano; se hai aggiunto ?WSDL alla fine di un endpoint webservice, hai una bugia.

    
risposta data 07.11.2010 - 21:02
fonte

Leggi altre domande sui tag