如何解决我可以在 Amazon Lambda 上使用 seccomp
我正在尝试使用 Amazon Lambda 来托管一个编程学习平台,我必须在其中执行简单的不受信任的 Python 代码。
我最近以一种简单的方式隔离用户代码的尝试是使用 <div id="result-output"></div>
禁用除读取文件和写入 <script>
$(document).ready(function(){
$("#rowcount-btn").click(function(){
var sum = 0;
$('.rowcount').each(function() {
if($(this).val()!="")
{
sum += parseFloat($(this).val());
}
});
// result displayed in HTML tag
$("#result-output").html(sum);
});
});
</script>
/seccomp
之外的任何内容,代码看起来像像这样:
stdout
这在本地运行良好,但在 Amazon Lambda 上,它没有找到 stderr
库。
我尝试将 from pyseccomp import *
f = SyscallFilter(defaction=KILL)
f.add_rule(ALLOW,"open",Arg(1,MASKED_EQ,os.O_RDONLY,os.O_RDONLY | os.O_RDWR | os.O_WRONLY))
f.add_rule(ALLOW,"openat",Arg(2,"read")
f.add_rule(ALLOW,"write",Arg(0,EQ,sys.stdout.fileno()))
f.add_rule(ALLOW,sys.stderr.fileno()))
f.add_rule(ALLOW,"close")
f.add_rule(ALLOW,"getdents64")
f.add_rule(ALLOW,"exit_group")
f.add_rule(ALLOW,"rt_sigaction")
f.add_rule(ALLOW,"sigaltstack")
f.add_rule(ALLOW,"brk")
f.add_rule(ALLOW,"lseek")
f.add_rule(ALLOW,"fstat")
f.add_rule(ALLOW,"mmap")
f.add_rule(ALLOW,"mprotect")
f.add_rule(ALLOW,"stat")
f.add_rule(ALLOW,"ioctl",0x5401)) # TCGETS
f.add_rule(ALLOW,"fcntl")
f.load()
从我的 Debian 稳定机器包含在 Amazon Lambda 函数中,并且代码进行到 seccomp
,但随后失败了
libseccomp.2
f.load()
返回 Traceback (most recent call last):
File "sandBox.py",line 32,in <module>
f.load()
File "/var/task/pyseccomp.py",line 335,in load
_check_status(_libseccomp.seccomp_load(self._filter))
File "/var/task/pyseccomp.py",line 183,in _check_status
raise _build_oserror(-res)
PermissionError: [Errno 1] Operation not permitted
是否意味着我根本无法在 Amazon Lambda 上使用 seccomp,或者我做错了什么。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。