Inhoudsopgave:
Definitie - Wat betekent Onveilig?
Onveilig is een sleutelwoord in de C-programmeertaal (C #) dat wordt gebruikt om een codedeel aan te duiden dat niet wordt beheerd door de Common Language Runtime (CLR) van het .NET Framework of onbeheerde code. Onveilig wordt gebruikt bij de aangifte van een type of lid of om blokcode op te geven. Bij gebruik om een methode op te geven, is de context van de hele methode onveilig.
Onveilige code biedt een goede interoperabiliteit met niet-beheerde applicatie-programmeerinterfaces (API) of systeemaanroepen en dient als een compatibele interface voor DLL (Dynamic Link Libraries) van derden, waarvoor aanwijzingen nodig zijn voor het doorgeven van parameters. Onveilige code kan ook worden gebruikt tijdens foutopsporing, wanneer procesinhoud inspectie of analyse vereist.
Techopedia verklaart Onveilig
Onveilige gegevens verwijzen naar toegewezen geheugengegevens die niet worden beheerd door de CLR, zoals Windows-grepen of pointers die via een nieuwe methode zijn toegewezen.
Onveilige code verwijst naar een instructie of methode die toegang geeft tot onbeheerd geheugen, waaronder:
- Oproepen naar Windows API's
- Aanroep naar Component Object Model (COM) -methode interface-componenten met structuren met pointers of kritieke prestatiecode.
Onveilige code wordt voornamelijk gebruikt wanneer bewerkingen met wijzers te maken hebben en, in het algemeen, wanneer code buiten de beheerde context wordt uitgevoerd. Onveilige code-compilatie vereist specificatie van de optie "/ onveilig" met de compilatieopdracht.
In volledig vertrouwde omgevingen is CLR vereist voor onveilige uitvoering van code. CLR verifieert echter geen onveilige code. CLR ondersteunt onveilige code om directe toegang te bieden tot onbeheerde geheugencode, wat soms vanwege prestatieredenen de voorkeur heeft.
Omdat CLR typeveiligheid en beveiliging handhaaft, ondersteunt C # geen pointerberekeningen in beheerde code, in tegenstelling tot C / C ++. Met het onveilige trefwoord kan de aanwijzer in onbeheerde code worden gebruikt. Veiligheid is echter niet gegarandeerd omdat strikte regels voor objecttoegang niet worden gevolgd. Bijvoorbeeld, pointer operatie mogelijkheden zijn niet voorzien in Java Runtime Environment (JRE).
Onveilige code kan problemen veroorzaken met stabiliteit en beveiliging, vanwege de inherente complexe syntaxis en het potentieel voor geheugengerelateerde fouten, zoals stapeloverloop, toegang tot en overschrijving van systeemgeheugen. Extra ontwikkelaarszorg is van het grootste belang om potentiële fouten of beveiligingsrisico's te voorkomen.