CodeGym /Java блог /Случаен /Безопасността на първо място. Нарича ли се Java сигурен е...
John Squirrels
Ниво
San Francisco

Безопасността на първо място. Нарича ли се Java сигурен език с добра причина?

Публикувано в групата
Има много добри неща за Java като език за програмиране. Той е елегантен, но мощен, многофункционален и независим от платформата. С това, че е обектно-ориентиран и преносим като най-широко споменаваните силни страни, друго голямо предимство на Java има тенденция да остава засенчено, така че новодошлите често имат ограничено разбиране за всички предимства на изучаването на Java instead of друг език за програмиране, за да направят правилния избор. Чували ли сте някога Java да се нарича защитен език за програмиране? Така е и с право. Безопасността на първо място.  Нарича ли се Java сигурен език с добра причина?  - 1 Затова решихме, че може би е време да хвърлим малко светлина върху това и да обясним защо Java се нарича защитен език и по Howъв точно начин е защитен.

Какво прави Java сигурен език?

Безопасна ли е Java? Има редица причини да наречем Java сигурен език за програмиране, въпреки че твърдението, че Java е по-сигурен в сравнение с редица други езици, би било правилният начин да го кажем, тъй като тези функции всъщност не правят Java абсолютно защитена, те просто основно подобряване на безопасността на изпълнение на Java code.
  • Проверка на byte code.
Проверката на byte code е една от основните функции, гарантиращи безопасността на Java codeа. Проверката на byte code означава, че Java използва компилатор, който чете codeа на Java и го превежда в машинно независимо представяне на byte code. Това позволява да се гарантира, че се изпълняват само легитимни byte codeове и ниHowъв зловреден code не може да влезе в системата. Компилаторът проверява дали byte codeовете отговарят на спецификацията на езика на Java и не нарушават правилата на езика на Java or ограниченията на пространството от имена. Кодът също се проверява за редица други „червени флагове“, като незаконни типове на данни, преливане и препълване на стека or нарушения в управлението на паметта. За да го обясним по-просто, програмите на Java се компorрат като битов code, който след това се изпълнява във виртуална машина и няма достъп до компютъра, на който работи. Това прави този code много по-безопасен за използване,
  • Автоматизирано управление на паметта.
Друга важна характеристика на Java като безопасен език е автоматичното управление на паметта и събирането на боклука, което също прави Java много по-лесен език за програмист, тъй като Java автоматично се грижи за всички проблеми с вътрешната памет и системите за управление на данни. Това позволява на програмиста изобщо да не се тревожи за проблеми с паметта, когато създава програма, като instead of това се фокусира върху други важни неща. Събирането на отпадъци, например, автоматично освобождава паметта, когато това е необходимо. Между другото, друго основно предимство на цялата тази автоматизация на управлението в Java е фактът, че тя намалява общите разходи за разработка (тъй като редица важни функции и процеси са автоматизирани).
  • Без указатели.
За разлика от много други езици за програмиране, C и C+ например, които използват стойности на указател за управление на паметта на приложението, в Java няма концепция за указатели. Въпреки че първоначално са проектирани като мярка за сигурност (за защита на личните данни от крадци), указателите също могат да бъдат голяма уязвимост в случай, че няHowъв вид злосторници успеят да получат достъп до тях, тъй като указателите нямат начин да проверят авторизацията в тях , като по същество позволява на всеки да има достъп до паметта на приложението. Java, Howто казахме, не използва указатели, а instead of това разчита на своите системи за управление на данни и вътрешна памет, като начин за защита на данните от всяHowъв неоторизиран достъп. Това прави почти невъзможно хакерите да проникнат в паметта на Java приложението. Разбираемо, това е друга причина, поради която Java е популярна в корпоративното развитие,
  • Java компилаторът автоматично проверява, открива и поправя грешки в codeа.
Автоматичната проверка на codeа за грешки е друга важна характеристика на Java, която я прави по-сигурна. Компилаторът проверява codeа, открива грешки, предупреждава програмиста за тези стрелки и предлага начини за коригирането им. Това отново опростява работата на програмиста, прави Java applicationsта много по-стабилни и в крайна сметка намалява разходите за разработка (причина номер 1 за почти всяка компания). Що се отнася до защитната част от нея, това също минимизира шансовете външен злонамерен code да влезе във вашата програма и да я направи неразрешени модификации.
  • Java извършва автоматична проверка на типа данни.
Освен проверка на codeа за грешки, Java Compiler също така автоматично проверява променливите в codeа, за да се увери, че няма проблеми със сигурността, които могат да възникнат от грешки при въвеждане на данни в променливи. Това е друг начин за защита на системата от проникване и кражба на данни.

Кои Java компоненти всъщност го правят защитен?

Що се отнася до специфичните компоненти на Java, които играят най-важната роля в нейната сигурност, ето кратък списък, само за да ви даде по-ясно разбиране на основно ниво за това How работи и Howво точно прави Java защитена.
  • Java Virtual Machine (JVM).
JVM, бидейки виртуална машина, която управлява представяне на byte code на Java програма, очевидно играе много важна роля в цялостната сигурност на Java. Използването на JVM ви позволява да блокирате всички потенциално опасни операции на дадена програма.
  • Криптографска архитектура на Java (JCA).
Java Cryptography Architecture е рамка, която ви позволява да добавите криптографска функционалност за платформата Java. Използването на Java Cryptography Architecture гарантира, че вашите данни ще бъдат криптирани и ще останат защитени.
  • Инфраструктура с публичен ключ (PKI).
Инфраструктурата на публичния ключ е друга рамка, която ви позволява да прилагате криптография с публичен ключ, за да постигнете сигурен обмен на данни. Използвайки PKI, можете да свържете идентичности с цифрови сертификати и да проверите автентичността на сертификатите, когато е необходимо.
  • Мениджър по сигурността.
Мениджърът за сигурност в Java е основно клас, който позволява на applicationsта да прилагат политика за сигурност, дефинира политиката за сигурност за тях и позволява на програмиста да зададе ниво на защита за приложение.
  • Java Sandbox.
Java sandbox е програмна област за изпълнение на Java аплети, която ограничава Howво може да прави аплет, за да се увери, че няма да компрометира сигурността и не може да стигне до системните ресурси без проверката за безопасност.

мнения

Дали професионалните Java разработчици с дългогодишен опит вярват, че този език е сигурен? Ето няколко цитата. „Бих казал, че Java не е сигурна сама по себе си (няма език за програмиране), но JVM предлага функции, които осигуряват сигурност. Така че докато Java няма да ви предпази от всичко, тя ще ви предпази от цял ​​клас проблеми, причинени от препълване на буфера“, казаГари Тейлър, опитен програмист и технически директор на компанията Black Spark Media. „Java подобрява сигурността, като ограничава аплет до средата за изпълнение на Java и не му позволява достъп до други части на компютъра. Възможността за изтегляне на аплети с увереност, че няма да бъде нанесена вреда и че няма да бъде нарушена сигурността, се счита от мнозина за най-иновативния аспект на Java“, отбеляза Смит Пракаш, софтуерен инженер в IBM.

Резюме

И така, защитена ли е Java? Обобщавайки го, Java определено има редица страхотни функции и вградени инструменти, които я правят по-сигурна. Много от тези функции играят важна роля за цялостната популярност на Java, особено на корпоративния пазар, тъй като позволяват на компаниите ефективно да защитават данните си от неоторизиран достъп, като същевременно автоматизират редица процеси на разработка, които не са автоматизирани от други езици. Но колкото и да обичаме да се хвалим с Java и колко е страхотна, Java все още далеч не е напълно защитена. Всъщност нито един от езиците за програмиране не е напълно сигурен, като всеки има своите силни и слаби страни (уязвимости). Най-общо казано, C се считада бъде най-уязвимият език за програмиране. Java, въпреки че има редица страхотни функции за сигурност, описани по-горе, все още е уязвима от страна на сървъра и може да пострада от експлойти, казват експерти .
Коментари
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION