..
De la introducerea sa, Java şi-a rezervat un rol important în probleme de securitate. Deşi cu rezultate mixte, designerii au încercat să ofere sisteme de platforma de securitate puse în aplicare în mod direct, în termeni de limbaj, la dispoziţia dezvoltatorilor.
Într-un proces continuu de evoluţie şi rafinament a JVM a devenit una dintre infrastructurii cele mai importante pentru stand-alone, web, mobile si mai mult, în acest articol ne vom concentra pe evolutia modelului de securitate, de obicei numit sandbox, comentând pe erori de proiectare şi starea curentă.
Acest articol se adresează tuturor, indiferent dacă acestea sunt cu experienţă programatori Java care posteste complet cititori de acest subiect. Unele consideraţii vor fi mai uşor de înţeles pentru cei care au deja ceva experienta cu acest limbaj, cu toate acestea, citirea acestui articol este potrivit pentru orice cititor.
Modelul original, cunoscut sub numele de sandbox a fost conceput pentru a limita cod potenţial rău intenţionat într-un mediu izolat, şi extrem de restrictiv. Java de la naşterea sa, a fost puternic orientat spre reţea şi această considerare a condus la elaboreze un model de execuţie în care codul a fost descărcate direct de la telecomanda, expunerea clientului la problemele de securitate semnificative.
În punerea sa în aplicare în primul rând, prezentat schematic in figura, sandbox doar distinge aproximativ între codul de codul local şi la distanţă: primul se bucura de acces deplin la toate resursele "critice" de sistem, cum ar fi, de exemplu, sistemele de fişiere şi diferite dispozitive, cod de la distanţă Dimpotrivă, au avut acces limitat la resurse, mediată de sandbox acelaşi: applet-uri, acum dispărut în mare parte de pe Web, am fost cel mai bun exemplu cunoscut.

Acest model include un set de mecanisme de securitate de la diferite niveluri.
Mai întâi de toate, Java este de tip în condiţii de siguranţă, adică există o relaţie explicită între o variabilă şi controlată şi tipul acestuia (punctul integer, plutitoare, de coarde, etc ..).
Cei care au programat în limbi străine cu low / mid-level, cum ar fi C şi C + + ştiu cât de multe probleme pot fi evitate acest control: set de conversii implicite între tipuri, cum ar fi pointerii nule întreg sau boolean pentru indicii alte, care sunt caracteristice aceste limbi, în acelaşi timp să devină principala sursă de erori de programare, la fel de angajat atât incepatori si experti.
Pentru a minimiza posibilitatea ca evoluţiile făcut gafe, designerii de la Soare a introdus anumite aspecte până în prezent se găsesc numai în nişă sau limbile nivel de universitate, cum ar fi, de exemplu, management automat al memoriei (de colectare a gunoiului) şi controale la run-time de memorie de acces (indicii, elemente de matrice, etc ...).
Al doilea nivel de protecţie este garantată de către compilator şi run-time, de maşini virtuale. Acest lucru asigură că bytecode, de asamblare a Java VM este executat cu buna executare a permiselor. În special, două componente cheie, SecurityManager şi ClassLoader, să definească un spaţiu nume locale pentru a evita interferenţele între instanţe diferite ale VM şi de a gestiona accesul la resurse critice de control.
Modelul prezentat este foarte flexibil şi în prima actualizare a JDK (versiunea 1.1) a fost introdus la conceptul de codul de sigura pentru a permite aplicaţiilor de la distanţă, dacă este însoţită de o semnătură electronică recunoscută de către client, accesul la resurse de sistem. Soluţia, prezentat în figura următoare, este puţin mai mult decât un hack de arhitectura anterioare şi, prin urmare, necesită o rescriere completă în următoarele versiuni.

| |
ASP (avansat)
Ciclu complet pentru crearea de site-uri Web dinamice. De la 39 €. |
| |
ASP şi Access (Ebook)
Gestionarea unei baze de date MS Access cu ASP. La doar 29 €. |
| |
Linux (Curs)
Ghid complet pentru open-source de sistem. De la 49 €. |