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.