ottobre 2005 Blog Posts
			
				
				
				
Le 
web application, per come le conosciamo, spesso necessitano di nascondere alcuni 
dati che possono essere classificati come segreti.
Nel caso in cui essi esistano, è necessario 
metterli in sicurezza da (li lascio in inglese perchè fa + figo) :
  rogue administrators 
  web malicious users
Le Spie. I Rogue 
AdministratorsQuesti ed altri utenti privi di 
scrupoli possono avere la possibilità di leggere segreti.Per esempio, un 
amministratore WebServer non 
dovrebbe essere in grado di leggere le 
credenziali di accesso al Server SQL della rete 
aziendale.
Le mura sono 
cadute ma posso difendermi ancora.Immaginando FileAuthorizaionModule come una reale 
protezione alle problematiche relative all'accesso...
				
				
			 
	
			
				
				
				
Ho deciso che è il momento di fare il grande salto.Ho appena terminato la procedura di prenotazione per l'esame 70-315
Developing and Implementing Web Applications with Microsoft Visual C#.NET and Microsoft Visual Studio.NET
A dirla tutta, il manuale per il 70-315 l'ho già studiato questa estate. (grazie luciano)In questo mese che manca all'esame lo ristudierò per la seconda volta sperando che vada tutto bene.Se avete suggerimenti o consigli, questi sono decisamente graditi!Ciao e Che dio me la mandi buona!
				
				
			 
	
			
				
				
				
L'elemento identity nel web.config supporta due attributi opzionali:
username 
password
Questi, permettono di specificare le fixed identity da impersonificare nell'applicazione web che abbiamo sviluppato. 
   userName="registry:HKLM\SOFTWARE\YourSecureApp\             identity\ASPNET_SETREG,userName"   password="registry:HKLM\SOFTWARE\YourSecureApp\             identity\ASPNET_SETREG,password"
Il codice sopra riportato mostra come utilizzare delle credenziali archiviate nel registro. Questa operazione è stata resa possibile dall'impiego del tool aspnet_setreg.exe. Il quale può essere scaricato da questo Url .Cosa è aspnet_setreg.exeaspnet_setreg è una utility che può essere utilizzata per codificare ed archiviare questi attributi nel registro di sistema sotto una chiave sicura.Prima di partire è necessario utilizzare la funzione CryptProtectData con la flag CRYPTPROTECT_LOCAL_MACHINE, la quale di fatto codifica le credenziali inserite. Questo passo va effettuato perchè qualunque persona...
				
				
			 
	
			
				
				
				
Finalmente è uscito anche in Italia :)Il classico buon vecchio ritorno alle origini.. (Quake2).
				
				
			 
	
			
				
				
				[INTRO]Ricordiamo che per impersonificare l'utente chiamate della risorsa attraverso la Windows Authentication è necessario il codice che segue nel Web.config o nel Machine.config
< SPAN><><authentication mode="="Windows" />< SPAN>< identity impersonate="true" />
[/INTRO]Quando viene messa in gioco l'autenticazione Windows in accoppiata con Impersonation le seguenti opzioni di sicurezza sono disponibili.Windows ACLsL'utente ha richiesto una risorsa. ASP.NET FileAuthorizaionModule esegue un access check per la tipologia di file richiesto il quale deve essere mappato nella ISAPI ASP.NET. Per fare questo utilizza l'access token dell'utente che ha effettuato la richiesta.Per i file che non sono mappati nella ISAPI, IIS esegue un access check, sempre utilizzando l'access token dell'utente...
				
				
			 
	
			
				
				
				
Ideare e 
realizzare strategie di autorizzazione per applicazioni web distribuite è 
una delle task più impegnative che si possono presentare in fase di 
analisi.Come parte una analisi ?Ponendosi domande 
intelligenti.Che cosa s'intende per domande intelligenti?In 
un ambiente Enterprise "ideale" le domande da proporsti potrebbero essere 
le seguenti:
  
  Dove dovrei utilizzare sistemi di autorizzazione 
  e con quale meccanismo?
  
  Che meccanismo di autentificazione dovrei 
  utilizzare?
  
  Dovrei utilizzare Active Directory Service per 
  l'autorizzazione o dovrei utilizzare un sistema di verifica basata su fonte 
  dati (DB)?
  
 ...
				
				
			 
	
			
				
				
				
Nel 
post precedente abbiamo parlato di Granularità dove abbiamo introdotto i gate 
che ASP.NET mette a disposizione.Le modalità di autorizzazione di 
ASP.NET vengono definite "Opzioni di Accesso" e possono 
essere utilizzate da Web Applications,WebServices e Componenti Remoti.  Le 
opzioni disponibili sono:URL Authorization . Questo 
meccanismo di autorizzazione può essere impostato nei file di configurazione 
dell'applicazione (webconfig) e della macchina (machineconfig). L'Opzione URL 
permette di ristringere l'accesso a specifici files e cartelle grazie 
all'utilizzo del namespace URI (Uniform Resource Identifier). Sarà così 
possibile permettere l'accesso a cartelle o files (percorsi web) a determinati 
utenti (regole di eccezione). I filtri di accesso possono...
				
				
			 
	
			
				
				
				
S'identifichi GateKeeper come la tecnologia responsabile di un Gate. Un Gate rappressenta un ACP (Access Control Point) per l'applicazione. Tutte le tecnologie Core
IIS 
ASP.NET 
Web Services 
Remoting 
Enterprise Services 
Sql Server 2000 
Windows 2000
presentano dei GateKeepers. Le richieste devono obbligatoriamente passare per una serie di Gates prima di passare a stato Allowed e quindi venire processate dal sistema. In questo post verranno illustrate la serie di cancelli che vengono attraversati per ogni tecnologia core.Internet Information Services mette a disposizione un Gate quando si autentifica l'utente (è dato per scontato che Anonymous authentication venga disabilitata). IIS Web Permissions può essere utilizzata...
				
				
			 
	
			
				
				
				Da alcuni mesi ho deciso di approfondire l'aspetto sicurezza nel mondo dello sviluppo di applicazioni .NET. La categoria Security sarà da considerarsi come il mio diario di viaggio verso questo mondo che, per mancanza di tempo, mi sono deciso solo ora ad affrontare.
La prima pagina (come d'obbligo) inizia con alcuni fondamenti relativi alla sicurezza. Niente di pratico.. solo raccomandazioni.
Utilizzare account con permessi LimitatiProcessi che eseguono script o eseguono cidice dovrebbero girare sotto account (least) per limitare potenziali danni che possono essere eseguiti se il codice è corrotto. L'account ASPNET viene considerato un modello di (least account).Questa decisione è stata presa dal team...
				
				
			 
	
			
				
				
				
Decisamente interessante la skin proposta da Winamp.com Per chi non lo sapesse è la skin del film Corpse Bride, dedicata tutta al nuovo capolavoro di Tim Burton.
				
				
			 
	
			
				
				
				
Mi sono rimasti gli 
ultimi 100 inviti Gmail da girare.Se ne volete uno potete 
contattarmi via feedback,ricordatevi di allegare la vostra email a cui 
mandare l'invito.
Ciao :)
				
				
			 
	
			
				
				
				Mi sembra ieri quando chiesi al mio mentore "ma la grafica dei webservice da dove viene ? "Beh a quei tempi era già tanto se si riuscivano a fare connessioni a database Microsoft Access e così rimasi senza una risposta per tanto tempo.. almeno fino ad oggi  
Se anche voi come me volete modificare l'aspetto dei vostri webservice (per divertimento o necessità), beh sappiate che la vostra soluzione si trova in un file presente nella path  
x:\windows\Microsoft.NET\Framework\'VERSIONE'\CONFIG
dove 'VERSIONE' sta per la versione del framework da voi utilizzataIn questa cartella ci sono numerosi file, molti dei quali li conoscete sicuramente.
Il file che...
				
				
			 
	
			
				
				
				Alla domanda, esiste un modo alternativo ma allo stesso tempo efficace per mettere in sicurezza un WebService che non sia la strada dei Certificati Lato Client?.Si è possibile e la risposta è nella autentificazione di Windows. Uno dei più grandi errori che si commettono durante lo sviluppo di WS, è quella di pensare che si sta sviluppando qualcosa di "diverso", "particolare". Bene non è così. Per proteggere un WebService è quindi possibile integrare la protezione di Windows.Per fare questo è necessario impostare la modalità di autentificazione "Integrated Windows Security", questa voce si raggiunge dal menù proprietà di ogni singolo Virtual Server...
				
				
			 
	
			
				
				
				
Idea forse ripresa dal plugin di Firefox? IE Tool Bar Beta propone tool interessanti quali il righello  ed altri interessanti strumenti di validazione del codice della pagina che si sta visualizzando.Altre funzioni riguardano Outlining di specifici tag html, il resize per simulare uno show a 800x600 e così via.
Rispetto a FireFox manca il supporto per editare i CSS in real time.. tutte piccole cose che potevano essere utili anche a IE users. 
Per visualizzare la barra al termine dell'installazione basta andare nella barra di internet explorer e selezionare la voce Developer Toolbar
				
				
			 
	
			
				
				
				
Io almeno non lo sapevo
"Microsoft Expression™ takes the many sides of your creative personality to all new levels. Professional design tools give you greater flexibility to create sophisticated applications and content. Innovative technologies enable faster and richer interface development for Windows applications or the Web. Compatibility between products increases all levels of your personal productivity."http://www.microsoft.com/products/expression/en/default.aspx 
				
				
			 
	
			
				
				
				
Girando su internet nel cofee break ho trovato questo interessante articolo di Alex Homer sulle nuove tecniche di data caching che verranno introdotte in .NET 2.
Fondamentalmente questo sistema non fa altro che tenere in cache i dati fin tanto che questi non sono cambiati all'interno della fonte dati. Tutto questo avviene attraverso l'implementazione di tabelle di supporto/stored procedures e triggers.
L'operazione è possibile anche con Sql Server non 2005 (in cui questa feature è già disponibile) tramite una operazione di "pre-setup".
Per fare questo sarà necessario eseguire il tool aspnet_regsql.exe da riga di comando. Gli verranno passati valori  di :
Server Name 
Username 
Password 
Database...
				
				
			 
	
			
				
				
				Per programmare IIS si può ricorrere non solo ad ADSI ma anche al Windows Management Interface.Come già anticipato in alcuni post precedenti WMI è molto più veloce in fase di esecuzione di ADSI..Il codice, che segue, mostra come conteggiare gli application Pool ed i Virtual Servers installati.Plus aggiungo anche del codice per conteggiare gli utenti attivi in locale nella macchina su cui gira l'applicazione.Per lavorare con WMI in .NET dobbiamo referenziare il namespace System.Management
Conteggio degli utenti in localeprivate int CountUsers(){System.Management.ManagementScope ms = new ManagementScope(”\root\CIMv2?);System.Management.ObjectQuery oq = new ObjectQuery(”SELECT * FROM Win32_Account where LocalAccount = true”);ManagementObjectSearcher query1 = new ManagementObjectSearcher(ms,oq);ManagementObjectCollection queryCollection...
				
				
			 
	
			
				
				
				Per recuperare la versione di Internet Information Services sulla quale sta girando la nostra applicazione possiamo ricorrere all'interrogazione diretta del metabase attraverso il namespace "System.DirectoryServices".Come? In questo modo:
W3SVC = new DirectoryEntry("IIS://localhost/W3SVC/Info"); Console.WriteLine(W3SVC.Properties["MajorIIsVersionNumber"].Value.ToString()); Console.WriteLine(W3SVC.Properties["MinorIIsVersionNumber"].Value.ToString());
Creiamo un oggetto DirectoryEntry collegato al ramo Info della gerarchia W3SVC, il quale offre numerose informazioni relative alla versione di IIS in uso.Le due interessate a questo post sono
MajorVersionNumberMinorIISVersionNumber
Le quali contengono i valori int relativi alla versione di IIS in uso.