CodeGym /Java Blog /Willekeurig /Veiligheid eerst. Wordt Java om een goede reden een veili...
John Squirrels
Niveau 41
San Francisco

Veiligheid eerst. Wordt Java om een goede reden een veilige taal genoemd?

Gepubliceerd in de groep Willekeurig
Er zijn veel goede dingen aan Java als programmeertaal. Het is elegant en toch krachtig, multifunctioneel en platformonafhankelijk. Omdat het objectgeoriënteerd en draagbaar is als de meest genoemde sterke punten, blijft een ander groot voordeel van Java vaak overschaduwd, zodat nieuwkomers vaak een beperkt begrip hebben van alle voordelen van het bestuderen van Java in plaats van een andere programmeertaal, om de juiste keuze te maken. Heb je ooit gehoord dat Java een veilige programmeertaal wordt genoemd? Dat is het, en terecht. Veiligheid eerst.  Wordt Java om een ​​goede reden een veilige taal genoemd?  - 1 Dus we dachten dat het misschien tijd was om hier wat licht op te werpen en uit te leggen waarom Java een veilige taal wordt genoemd en op welke manier het precies veilig is.

Wat maakt Java tot een veilige taal?

Is Java veilig? Er is een aantal redenen om Java een veilige programmeertaal te noemen, hoewel het de juiste manier zou zijn om te zeggen dat Java veiliger is in vergelijking met een aantal andere talen, aangezien deze functies Java niet echt absoluut veilig maken, maar voornamelijk de veiligheid van de uitvoering van Java-code verbeteren.
  • Bytecode-verificatie.
Bytecodeverificatie is een van de kernfuncties die de veiligheid van Java-code waarborgen. Een bytecodeverificatie houdt in dat Java een compiler gebruikt, die Java-code leest en vertaalt naar een machine-onafhankelijke bytecoderepresentatie. Dit zorgt ervoor dat alleen legitieme bytecodes worden uitgevoerd en dat er geen kwaadaardige code het systeem kan binnendringen. De compiler controleert of de bytecodes voldoen aan de Java-taalspecificatie en niet in strijd zijn met de Java-taalregels of naamruimtebeperkingen. De code wordt ook gecontroleerd op een aantal andere 'red flags', zoals illegale datatypecasts, stack underflows en overflows, of schendingen van het geheugenbeheer. Om het eenvoudiger uit te leggen: Java-programma's worden gecompileerd als hapcode, die vervolgens in een virtuele machine wordt uitgevoerd en geen toegang heeft tot de computer waarop het draait. Het maakt deze code veel veiliger om te gebruiken,
  • Geautomatiseerd geheugenbeheer.
Een ander belangrijk kenmerk van Java als veilige taal is automatisch geheugenbeheer en afvalverzameling, wat Java ook een veel gemakkelijkere taal maakt voor een codeur, aangezien Java automatisch zorgt voor alle interne geheugenproblemen en gegevensbeheersystemen. Hierdoor hoeft de programmeur zich bij het maken van een programma helemaal geen zorgen te maken over geheugenproblemen, maar zich in plaats daarvan op andere belangrijke dingen te concentreren. Garbage collection maakt bijvoorbeeld automatisch het geheugen vrij als dat nodig is. Een ander groot voordeel van al deze beheerautomatisering in Java is trouwens het feit dat het de totale ontwikkelingskosten verlaagt (aangezien een aantal belangrijke functies en processen geautomatiseerd zijn).
  • Geen aanwijzingen.
In tegenstelling tot veel andere programmeertalen, bijvoorbeeld C en C+, die pointerwaarden gebruiken om het toepassingsgeheugen te beheren, bestaat er geen concept van pointers in Java. Hoewel oorspronkelijk ontworpen als beveiligingsmaatregel (om privégegevens tegen dieven te beschermen), kunnen pointers ook een grote kwetsbaarheid vormen in het geval dat een of andere boosdoener er toegang toe weet te krijgen, aangezien pointers geen manier hebben om de autorisatie erin te verifiëren , waarmee in feite iedereen toegang krijgt tot het geheugen van de toepassing. Java gebruikt, zoals we al zeiden, geen pointers, maar vertrouwt in plaats daarvan op de gegevensbeheersystemen en het interne geheugen als een manier om de gegevens te beschermen tegen ongeoorloofde toegang. Dit maakt het vrijwel onmogelijk voor hackers om het geheugen van de Java-toepassing te infiltreren. Begrijpelijkerwijs is dit nog een reden waarom Java populair is bij bedrijfsontwikkeling,
  • Java-compiler controleert, detecteert en herstelt automatisch fouten in code.
Automatische controle van code op fouten is een ander belangrijk kenmerk van Java dat het veiliger maakt. De compiler controleert de code, detecteert fouten, waarschuwt de programmeur voor deze pijlen en stelt manieren voor om ze op te lossen. Dit vereenvoudigt opnieuw het werk van de programmeur, maakt Java-applicaties een stuk stabieler en verlaagt uiteindelijk de ontwikkelingskosten (reden nummer 1 voor vrijwel elk bedrijf). Wat het beveiligingsgedeelte betreft, dit minimaliseert ook de kans dat externe kwaadaardige code uw programma binnendringt en er ongeoorloofde wijzigingen in aanbrengt.
  • Java voert automatische gegevenstypecontrole uit.
Naast het controleren van code op fouten, onderzoekt Java Compiler ook automatisch variabelen in de code, om er zeker van te zijn dat er geen beveiligingsproblemen zijn die kunnen voortvloeien uit fouten bij het invoeren van variabelen. Dit is een andere manier om het systeem te beschermen tegen infiltratie en gegevensdiefstal.

Welke Java-componenten maken het eigenlijk veilig?

Wat betreft de specifieke Java-componenten die de belangrijkste rol spelen in de beveiliging, volgt hier een korte lijst om u op basisniveau een beter begrip te geven van hoe het werkt en wat Java precies veilig maakt.
  • Java virtuele machine (JVM).
JVM, een virtuele machine die bytecoderepresentatie van een Java-programma uitvoert, speelt duidelijk een zeer belangrijke rol in de algehele beveiliging van Java. Door JVM te gebruiken, kunt u mogelijk onveilige bewerkingen van een programma blokkeren.
  • Java-cryptografie-architectuur (JCA).
Java Cryptography Architecture is een raamwerk waarmee u cryptografische functionaliteit voor het Java-platform kunt toevoegen. Het gebruik van Java Cryptography Architecture garandeert dat uw gegevens worden versleuteld en veilig blijven.
  • Publieke Sleutel Infrastructuur (PKI).
Public Key Infrastructure is een ander raamwerk waarmee u public-key cryptografie kunt toepassen om een ​​veilige uitwisseling van gegevens te bereiken. Met behulp van PKI kunt u identiteiten aan digitale certificaten koppelen en de authenticiteit van certificaten indien nodig verifiëren.
  • Beveiligingsmanager.
De beveiligingsmanager in Java is in feite een klasse waarmee applicaties een beveiligingsbeleid kunnen implementeren, het beveiligingsbeleid voor hen definieert en een programmeur in staat stelt een beveiligingsniveau voor een app in te stellen.
  • Java-sandbox.
Java-sandbox is een programmagebied om Java-applets uit te voeren, wat beperkt wat een applet kan doen om ervoor te zorgen dat het de beveiliging niet in gevaar brengt en niet bij systeembronnen kan komen zonder de veiligheidscontrole.

Meningen

Denken professionele Java-ontwikkelaars met jarenlange ervaring dat deze taal veilig is? Hier zijn een paar citaten. “Ik zou zeggen dat Java als zodanig niet veilig is (geen enkele programmeertaal is dat), maar de JVM biedt functies die beveiliging bieden. Dus hoewel Java je niet tegen alles zal beschermen, zal het je wel beschermen tegen een hele reeks problemen die worden veroorzaakt door bufferoverschrijdingen,” zeiGarry Taylor, een ervaren programmeur en CTO van Black Spark Media Company. “Java verbetert de beveiliging door een applet te beperken tot de Java-uitvoeringsomgeving en deze geen toegang te geven tot andere delen van de computer. De mogelijkheid om applets te downloaden met het vertrouwen dat er geen schade zal worden aangericht en dat er geen inbreuk op de beveiliging zal worden gemaakt, wordt door velen beschouwd als het meest innovatieve aspect van Java”, aldus Smit Prakash, een software-engineer bij IBM.

Samenvatting

Dus, is Java veilig? Kortom, Java heeft zeker een aantal geweldige functies en ingebouwde tools die het veiliger maken. Veel van deze functies spelen een belangrijke rol in de algehele populariteit van Java, vooral in de zakelijke markt, omdat ze bedrijven in staat stellen hun gegevens effectief te beschermen tegen ongeoorloofde toegang, terwijl ze ook een aantal ontwikkelingsprocessen automatiseren die niet door andere talen worden geautomatiseerd. Maar hoe graag we ook opscheppen over Java en hoe geweldig het is, Java is nog lang niet volledig veilig. In feite is geen van de programmeertalen volledig veilig en heeft elk zijn eigen sterke en zwakke punten (kwetsbaarheden). Over het algemeen wordt C beschouwdom de meest kwetsbare programmeertaal te zijn die er is. Java is, ondanks een aantal geweldige beveiligingsfuncties die hierboven zijn beschreven, nog steeds kwetsbaar aan de serverzijde en kan last hebben van exploits, zeggen experts .
Opmerkingen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION