Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
确保Java程序的安全_Java_Security_Root_Privileges - Fatal编程技术网

确保Java程序的安全

确保Java程序的安全,java,security,root,privileges,Java,Security,Root,Privileges,我有一个使用该库的Java项目,该库需要root权限来执行我在项目中需要的某些操作。我应该注意到,尽管该项目是基于Java的,但它只适用于Linux 该项目将有许多不需要根权限的函数,其中一些必须与根权限函数交互,而另一些则不需要 此外,项目将执行程序,例如使用root权限下的用户输入数据 所有这些根活动都让我担心我的系统的安全性。目标机器将是用户自己的计算机,不打算在某些公共终端上运行此系统,但安全性仍然很重要,因为未知的外部蓝牙设备将能够与此系统交互 到目前为止,我的安全措施涉及大量过滤用户

我有一个使用该库的Java项目,该库需要root权限来执行我在项目中需要的某些操作。我应该注意到,尽管该项目是基于Java的,但它只适用于Linux

该项目将有许多不需要根权限的函数,其中一些必须与根权限函数交互,而另一些则不需要

此外,项目将执行程序,例如使用root权限下的用户输入数据

所有这些根活动都让我担心我的系统的安全性。目标机器将是用户自己的计算机,不打算在某些公共终端上运行此系统,但安全性仍然很重要,因为未知的外部蓝牙设备将能够与此系统交互

到目前为止,我的安全措施涉及大量过滤用户输入,并非常小心地注意外部蓝牙设备将导致系统执行的所有操作,但我越来越不满意这一点

人们会推荐什么?一种想法是将系统分成两到三个模块,一个包含GUI和非根后端,一个包含Bluecove根后端,可能还有一个用于hciconfig和其他使用工具的根包装器


我注意到一些程序,例如Apache,曾经运行过“下拉”权限。这是如何实现的,并且有效吗?

apache做了什么?setuid系统调用(在libc中),正如您所指出的,它有效地降低了进程的权限。您可以通过JNI调用libc,或者

即使对于Java程序,这也非常有效,只是一旦从根转到非根,就无法执行任何需要提升权限的操作。因此,只有当所有特权操作都可以像Apache一样提前完成时,才能使用该技术

另一种可能是将您的程序分为两个进程——启动时,您的程序派生另一个以root运行的程序,然后将原始程序降级到非root。两个进程可以通过其标准输入/标准输出进行通信