在JVM中停止恶意线程

Jim*_*Jim 2 java security multithreading jvm

我正在写一个服务器,它可能正在运行恶意代码.为了防止攻击者将线程抛入无限循环,我想强制执行一秒的执行时间限制.

一个InterruptedException可以无限循环内被捕获,从而允许攻击者保留线程的控制.因此Thread.interrupt()不是可接受的解决方案.

我当前的实现防止恶意线程获取任何资源(包括锁),用于Thread.stop()终止执行,并恢复线程所做的任何更改.我的主要抱怨是它使用了弃用的Thread.stop()方法; 我不喜欢使用已弃用的代码.

我想知道是否有更多行业认可的解决方案,缺少启动/杀死一个全新的JVM,这对我的目的来说会有太多的开销.

Pet*_*rey 5

杀死线程的唯一方法是使用单独的进程并终止该进程.Thread.stop()抛出一个可以捕获并忽略的ThreadDeath错误.即catch(Throwable t) {}

有关Thread.stop()实际执行的更多详细信息Thread.stop()是否真的停止了一个Thread?