Luc*_*cky 7 security
在Ideone站点中,用户上载要在远程服务器上运行的代码.这类似于在线法官的职能.
问题是用户可能会上传试图"破解"系统的代码.我知道在C和C++中很容易禁用某组系统调用(补丁几个.dll),但我对其他语言不太确定.
如果您在在线评判中支持更高级别的语言(Erlang,Haskell),您将如何保护您的系统?
mpe*_*ez0 3
以非特权用户身份在沙箱中运行。这并不是绝对万无一失的,但它使得造成持久损害或严重妥协的门槛非常高。它也不依赖于可能的选项或对相关语言运行时的修改。如果您正在处理完全编译的语言(即没有运行时解释器),您也可以这样做。
以 Erlang 为例。设置一个chroot 监狱,其中仅包含运行 Erlang 所需的内容。添加非特权用户帐户和主目录。引入要运行的代码,验证所有文件/目录权限,更改为非特权UID并运行代码。
您可以在上面引用的维基百科文章中找到有关设置监狱的更多详细说明。不同操作系统的过程和要求略有不同。
归档时间:
15 年,9 月 前
查看次数:
1065 次
最近记录:
13 年,8 月 前