Недавно я узнал о модели безопасности Java. Большинство людей думают, что Java безопасна, потому что она невосприимчива к переполнению буфера и т. Д., Но вся эта модель безопасности Java сосредоточена на проверке того, имеет ли код разрешение на выполнение определенных действий. Они действительно решают сложную проблему: как разрешить запуск произвольного ненадежного кода (например, в веб-браузере), но не допустить злонамеренного доступа к базовой системе, сохранив при этом возможность каким-то образом взаимодействовать с системой.
Изолированный C ++ или что-то подобное было бы очень сложно даже попробовать, потому что язык диктует, что вы можете выполнять арифметические операции с указателями и т. Д., Позволяя вредоносному коду повредить другие части процесса. Однако, поскольку существует много языков, безопасных для памяти, мне было интересно, какие еще языки имеют сложные модели безопасности и как они сравниваются с Java.
Я не знаю наверняка, сколько языков стремятся иметь такие понятия, как «песочница» и т. Д. Я ищу несколько указателей, чтобы узнать об этом интересном направлении компьютерной безопасности.