Java以外的哪些语言具有非特权代码与特权代码的安全模型?

Gra*_*ity 5 java security

我最近了解了Java的安全模型.大多数人认为Java是安全的,因为它不受缓冲区溢出等的影响,但是整个Java安全模型都集中在检查代码是否有权采取某些操作.他们真正解决了一个具有挑战性的问题:如何让任意不受信任的代码(例如在网络浏览器中)运行但是无法以恶意方式访问底层系统,同时保留以某种方式与系统交互的能力.

Sandboxed C++或类似的东西甚至很难尝试,因为语言要求你能够做指针算术等,允许恶意代码破坏过程的其他部分.但是,由于有许多内存安全的语言,我想知道其他语言有哪些复杂的安全模型以及它们与Java的比较.

我不知道有多少语言努力拥有像"沙盒"等概念.我正在寻找一些指导来了解这个有趣的计算机安全方向.

ysh*_*vit 4

Perl 有一个非常巧妙的功能,称为污点模式 ( -T)。启用该模式后,来自外部世界的任何变量(环境变量、GET/POST 数据等)都会受到污染,并且任何接触受污染变量的变量也会受到污染。受污染的变量不能在接触外部世界的方法中使用(SQL、exec/system 等)。取消变量污染的唯一方法是对其执行正则表达式;任何匹配的组都未被污染。当然,您可以通过为 执行正则表达式来绕过污染模式/(.*)/,但想法是您必须主动编写这样的糟糕代码 - 而不是只是粗心地忘记清理您的输入 - 如果您要做某事就像将用户输入直接连接到 MySQL 一样愚蠢。