Scrittura di codice indipendente dai tipi verificabile
Il codice indipendente dai tipi è codice che accede ai tipi solo con modalità ben definite e consentite. Dato un riferimento a un oggetto valido, ad esempio, il codice indipendente dai tipi può accedere solo a offset fissi corrispondenti ai membri di campo effettivi. Se tuttavia il codice accede alla memoria a offset arbitrari esterni all'intervallo di memoria appartenente ai campi dell'oggetto esposti in modo pubblico, non sarà indipendente dai tipi.
Durante la compilazione JIT viene eseguito un processo denominato verifica, in base al quale il codice viene esaminato, per determinare se è indipendente dai tipi. Il codice che a seguito della verifica è riconosciuto indipendente dai tipi viene definito codice indipendente dai tipi verificabile. Esiste, infatti, codice che pur essendo indipendente dai tipi non è indipendente dai tipi verificabile, a causa delle limitazioni del processo di verifica o del compilatore. Non tutti i linguaggi sono indipendenti dai tipi e alcuni compilatori di linguaggio, quali Microsoft Visual C++, non sono in grado di generare codice gestito indipendente dai tipi verificabile. Per stabilire se il compilatore di linguaggio utilizzato è in grado di generare codice indipendente dai tipi verificabile, consultare la documentazione del compilatore. Se il compilatore di linguaggio utilizzato genera codice indipendente dai tipi verificabile solo se si evitano determinati costrutti di linguaggio, è possibile utilizzare lo strumento PEVerify di Windows Software Development Kit (SDK) per determinare se il codice è indipendente dai tipi verificabile.
È tuttavia possibile tentare l'esecuzione di codice non indipendente dai tipi verificabile, se i criteri di sicurezza consentono al codice di evitare la verifica. Poiché l'indipendenza dai tipi è tuttavia una componente essenziale del meccanismo di isolamento degli assembly nell'ambiente di esecuzione, non è possibile applicare la sicurezza in maniera affidabile se il codice viola le regole dell'indipendenza dai tipi. In base all'impostazione predefinita, l'esecuzione del codice non indipendente dai tipi è consentita solo se il codice ha origine nel computer locale. È quindi necessario che il codice mobile sia indipendente dai tipi.
Vedere anche
Riferimenti
Peverify.exe (strumento PEVerify)
Concetti
Sicurezza dall'accesso di codice
Nozioni fondamentali sulla sicurezza per l’accesso al codice