Onlangs genoot ik van een vrij goed ontworpen, op Java gebaseerd spel in mijn Firefox-browser. Naderhand kon ik niet anders dan nadenken over het nut en de kracht van Java - met name hoe web-embedded Java-applets werken. In de zakelijke omgeving waarin ik werk, wordt Java beschouwd als de webapplicatie bij uitstek voor het ontwikkelen van browsergebaseerde applicaties. ActiveX-applicaties zijn standaard uitgeschakeld in alle browsers.
Sun Microsystems ontwikkelde de Java-programmeertaal en architectuur in 1995. Sindsdien is het een waardevol en integraal onderdeel van de evolutie van internet geworden. Paul heeft een geweldige lijst voor voorbeelden van Java-toepassingen gemaakt Top 5 websites voor voorbeelden van Java-toepassingen Top 5 websites voor voorbeelden van Java-toepassingen Lees meer dat zou zeer nuttig moeten zijn voor ontwikkelaars, en Karl gaf een handige gids over hoe oudere versies van JRE How To te verwijderen Oude versies van Java Runtime verwijderen van uw pc Hoe kunt u oude versies van Java Runtime van uw pc verwijderen Meer informatie op uw systeem.
In dit artikel wil ik even stilstaan bij de redenen waarom Java wordt beschouwd als een van de meest vertrouwde architecturen voor het ontwikkelen en uitvoeren van toepassingen via internet en een klein beetje over hoe Java-applets werken. Zoals de meeste lezers wellicht weten, is de schoonheid van Java dat de Java Virtual Machine-architectuur het voor Java mogelijk maakt om op meerdere platforms te draaien - inclusief Windows, Solaris, Linux en Apple. De mogelijkheid om veelgebruikte applicaties te schrijven die op meerdere architecturen kunnen worden uitgevoerd, maakt van Java een van die webprogrammamodellen die al meer dan tien jaar bestaat en blijft.
Waarom u overal Java-software kunt installeren en uitvoeren
De reden dat het model van Sun zo goed werkte, was deels omdat het werd gemaakt om een van de vele nadelen van het vroege internet te overwinnen. Weinig zeer "nuttige" applicaties kunnen via internet worden uitgevoerd vanwege alle beveiligingsproblemen bij het toestaan van een op internet gebaseerde applicatie met toegang tot de instellingen en informatie van browsers - of erger nog, het bestandssysteem en besturingssysteem van de computer. Vroege architectuurontwikkelaars beseften dat het voor elke websoftwareomgeving nodig was om die veiligheidsoverwegingen serieus te nemen.
Voordat we bij de beveiliging komen, wil ik de architectuur zelf kort bespreken en het systeem zo effectief en krachtig maken voor zowel softwareontwikkelaars als internetgebruikers die meer nuttige en functionele webtoepassingen wilden.
Als je mijn slechte poging tot tekenen hierboven bekijkt, zie je een ruwe weergave van de stroom van het Java-programma. In essentie schrijven Java-ontwikkelaars een applicatie. Ik focus me op Java-applets, omdat dit over internet-apps gaat - lokale Java-applicaties zijn een heel ander beest met hun eigen unieke overwegingen.
Ontwikkelaars maken Java-appletcode die kan worden ingesloten in elke webpagina. Of u nu Ubuntu, Mac of Windows gebruikt, wanneer u die applet start met uw specifieke browserversie, probeert de applet binnen zijn "sandbox" te draaien, de Java Runtime Environment of Java Machine. Ik vond enkele gave, eenvoudige voorbeelden van hoe Java-applets werken, gemaakt door Joseph Bergin van Pace University in 1996.
Zoals u kunt zien, accepteert deze eenvoudige applicatie gebruikersinvoer en reageert op die invoer door willekeurige punten op de gekozen manier te sorteren. Deze applicatie accepteert de Java-code en converteert deze naar machineleesbare code die geschikt is voor dat specifieke besturingssysteem, zodat de muis, het display en andere systeemfuncties correct werken met die applicatie.
Zoals je kunt zien aan de hand van zijn achtergrondcode, is Java een objectgeoriënteerde taal, met klassen en objecten die gemeenschappelijk zijn voor alle Java-ontwikkelaars. Dit is de schoonheid van Java-ontwikkeling - het platform waar je voor schrijft doet er niet toe, omdat iedereen dezelfde taal spreekt.
Java is nu een applicatie-runtime-platform dat wereldwijd steeds meer geaccepteerd en "standaard" wordt en het is een van de meest populaire programmeertalen die worden gekozen voor online applicatie-ontwikkeling. U kunt op elk gewenst moment de nieuwste JRE voor uw besturingssysteem installeren.
Beveiligingsproblemen en waarom u zich veilig moet voelen
De volledige Java-lay-out is ontwikkeld met het oog op gebruikersbeveiliging. Ontwikkelaars van de zon wilden de JRE en de taal zodanig structureren dat het, hoewel niet onmogelijk om te hacken, veel moeilijker zou zijn. In de afgelopen jaren hebben we allemaal enkele nachtmerrieaccounts van ActiveX-virussen en dergelijke gehoord, maar Java blijft voor de meeste bedrijven en bedrijfsomgevingen een van de veiligste methoden om webapps binnen een browser uit te voeren. De meeste bedrijven laten Java ingeschakeld in hun browsers en de meeste clientcomputers zijn geïnstalleerd met de nieuwste JRE.
Wanneer u een Java-applet uitvoert of alleen de JRE installeert, ziet u het Java-pictogram in de taakbalk verschijnen. Als je dit ziet, weet je dat je Java hebt geïnstalleerd. Om de versie te controleren, klikt u gewoon met de rechtermuisknop, opent u het Configuratiescherm en selecteert u " Over ... "
Deze runtime-omgeving of 'sandbox' beschermt uw computer tegen schadelijke code, gewoon door de manier waarop de functionaliteit is ontwikkeld en de taal is gestructureerd. Een aantal van de veiligheidsoverwegingen waarop u kunt rekenen wanneer u Java in uw browser toestaat en de JRE op uw systeem installeren, zijn als volgt.
- Java heeft openbare methoden die ontwikkelaars kunnen gebruiken, maar deze veelgebruikte methoden hebben beveiligingscontroles die ervoor zorgen dat ze niet op de verkeerde manier door de toepassing worden gebruikt. Dit betekent dat de toegang tot vele objecten (zoals het File-object) een bepaald "beveiligingscontrolepunt" heeft voordat een toepassing toegang heeft tot die openbare methode binnen de Java-bibliotheek.
- Java wordt als "type veilig" beschouwd, wat betekent dat de compileer- en runtime-variabeletypen compatibel zijn - geverifieerd tijdens compileren of runtime. Hiermee wordt schadelijke code geblokkeerd die toegang probeert te voorkomen tot toegangsbeveiliging door objecten te "casten". Dit betekent dat Java het vermogen van een andere hele klasse malware en virussoftware heeft verwijderd om problemen te veroorzaken.
- Ontwikkelaars declareren methoden als "definitief", wat betekent dat externe toepassingen (zoals kwaadwillende softare) geen methoden kunnen overschrijven - alleen de werkelijke gedeclareerde methode wordt aangeroepen voor het object. Nog een beveiligingsscheur verzegeld door Java.
- Hoewel het ten slotte een doorn in het oog van veel ontwikkelaars is, staat Java pointers niet toe als gegevenstype. Hoewel dit betekent dat ontwikkelaars andere manieren moeten ontwikkelen om taken uit te voeren waarbij ze pointers gebruiken, betekent dit ook dat array-aanwijzers niet kunnen worden gemanipuleerd - noch kunnen programmeurs per ongeluk een array-length met foutieve code overslaan. Schadelijke apps kunnen geen gebruik maken van pointer-rekenkundige bewerkingen om toegang te krijgen tot systeemobjectaanwijzers, omdat er geen aanwijzer is om te manipuleren.
- Java heeft zijn eigen "garbage collection" om het geheugen te herstellen, waardoor de mogelijkheid voor kwaadwillende code wordt geblokkeerd om geheugen toe te wijzen voor één doel, de toewijzing ongedaan te maken en het vervolgens (met een nieuwe aanwijzer) voor kwaadwillende doeleinden te gebruiken. Nogmaals - een hele klasse van kwaadaardige code is hierdoor geblokkeerd.
Als u geen programmeur bent, moet alle bovenstaande informatie u eenvoudigweg geruststellen dat de Java-aanpak voor het uitvoeren van webtoepassingen een van de veiligste beschikbaar is. U kunt er vrij zeker van zijn dat de JRE op uw systeem wordt uitgevoerd en Java-applets worden gestart.
Nog een ding om te begrijpen wanneer u Java-applets uitvoert, is wanneer u wordt gevraagd of u een "vertrouwd certificaat" wilt geven. Accepteer deze verzoeken zorgvuldig, want als u dat eenmaal doet, kan de Java-code enigszins buiten de normale sandaal van de applet lopen. "U kunt toegang krijgen tot welke certificaten u als vertrouwd hebt door in het Java-configuratiescherm te gaan en op het tabblad Beveiliging te klikken en vervolgens op" Certificaten ... "te klikken.
Niet-ondertekende applets kunnen alleen netwerkverbindingen maken naar hun host, webdocumenten weergeven, alleen openbare methoden aanroepen (zie het bovenstaande beveiligingsvoordeel) en zij kunnen systeemeigenschappen lezen. Ondertekende applets kunnen toegang krijgen tot het lokale bestandssysteem, bestanden, klembord en printers en hebben toegang tot andere externe servers en nog veel meer. Toch is het een goede waarborg dat de gebruiker (u) expliciet toestemming moet verlenen. Ik herkende elke app op mijn lijst - niets wordt automatisch toegevoegd.
Ben jij een Java-ontwikkelaar? Wat vindt u van de functionaliteit en beveiliging van Java-applets? Als u een gewone internetgebruiker bent en geen ontwikkelaar, beschouwt u het proces van het uitvoeren van Java-applets dan eenvoudig genoeg om te begrijpen? Deel uw mening in de commentarensectie hieronder.