Premessa:
Vi ricordate quando ancora si creavano pagine asp "ponte" tra due server in cui bastava mettere una querystring studiata per ben benino per far creare ad un secondo server la mail, la cartella e tutto quanto non si riusciva a fare dal server dal quale si lavorava (una sorta di webservice primordiale)? Bene è già dai quei tempi che continuo a borbottare che sistemi del genere (anche se protetti con password di NT o quel cavolo che si voleva) erano insicuri.
Poi si è passati al soap...e già si intravedeva una buona soluzione: obbligare chi vuole accedere al servizio (ex pagine asp con queryString) ad aggiungere un semplice header nell'intestazione http che facesse riferimento al SOAP. :-) wow la paura che con un link studiato apposta messo da qualche parte su internet, uno potesse fare quello che voleva sui sistemi già svaniva...
Ma, sfortunatamente, ...IL GET ed il POST funzionavano lo stesso...
Con l'arrivo dei webservice integrati in .net speravo nell'obbligatorietà di utilizzo del metodo soap e non più del get&post...ma anche li il nulla di fatto.
Poi ho scoperto che con una semplice (e x fortuna non tanto nascosta) modifica al machine.config (o web.config) è possibile DISABILITARE questi due protocolli!! (poi spiego, anzi faccio spiegare come)
A mio malgrado però ho sempre notato che la mia "teoria" della pericolosità di lasciare il GET e POST attivi per i webservice è sempre stata sormontata dalla evidente comodità per alcuni sviluppatori di fare un semplice get o post per avere le risposte dai webservice...
Ora (ed ecco il motivo del mio post) a due anni di distanza dalla sua pubblicazione ho scoperto questo articolo sul sito di microsoft che parla appunto di tutto questo!!
Eccolo (spiega -meglio di me- il perchè e come correggere il problema + eventuali problemi collaterali): http://www.microsoft.com/italy/msdn/library/webservices/disHTT.asp
(l'ho già stampato in mille copie ;-P)