Niedawno dowiedziałem się o modelu bezpieczeństwa Java. Większość ludzi uważa, że Java jest bezpieczna, ponieważ jest odporna na przepełnienie bufora, itp., Ale istnieje cały ten model bezpieczeństwa Java skupiony wokół sprawdzania, czy kod ma uprawnienia do wykonywania określonych czynności. Naprawdę rozwiązują trudny problem: jak uruchomić dowolny niezaufany kod (powiedzmy w przeglądarce internetowej), ale uniemożliwić mu dostęp do bazowego systemu w złośliwy sposób, zachowując jednocześnie możliwość interakcji z systemem.Jakie języki inne niż Java mają modele zabezpieczeń dla kodów nieuprzywilejowanych lub uprzywilejowanych?
Piaskownica C++ lub coś podobnego byłaby bardzo trudna do podjęcia, ponieważ język nakazuje wykonywanie arytmetyki wskaźników itp., Umożliwiając złośliwemu kodowi uszkodzenie innych części procesu. Ponieważ istnieje wiele języków bezpiecznych pamięci, zastanawiałem się jednak, jakie inne języki mają wyrafinowane modele zabezpieczeń i jak się je porównuje do języka Java.
Nie wiem od ręki, jak wiele języków starają się mieć pojęcia takie jak "piaskownica", itp. Szukam wskazówek, aby dowiedzieć się o tym interesującym kierunku bezpieczeństwa komputerowego.
To nie jest tak dużo funkcja języka jako środowiska wykonawczego. Wszystko działa na JVM lub CLR będzie działać tak samo. Również JavaScript działający na stronie przeglądarki jest niezaufany, chociaż przeglądarka może używać zaufanego JavaScript w implementacji przeglądarki. Google NaCl ładnie piaskownice C++, aw systemie UNIX można zbudować "więzienie chroot". –