gpt4 book ai didi

c# - 自动编译运行第三方代码

转载 作者:太空宇宙 更新时间:2023-11-03 11:22:18 24 4
gpt4 key购买 nike

我目前正在编写一个自动源代码验证工具。基本上学生必须上传他们的 C# 源代码文件作为不同任务的解决方案。服务器在框架内编译这些文件,并根据不同的输入文件检查程序。如果程序生成的输出有效(等于预定义的输出),则程序有效,学生将获得该程序的分数。

但我不认为我可以信任学生 ;) 他们可能会尝试获取文件访问权限或在服务器上执行其他不良操作。

我该怎么做才能将访问权限限制在最低限度?
我需要考虑什么?

已经想到:

  • 文件访问
  • 最大。执行时间
  • 启动其他程序
  • 做网络方面的事情
  • 反射(reflection)

目前,我能想到的检查代码的唯一方法是使用正则表达式在其中搜索"file"、“网络”、“进程”等关键字。

但我很确定这是非常不安全的。
有什么建议吗?

最佳答案

如果只是安全方面的问题,您应该在沙箱中编译和运行程序。如果您有权访问虚拟机,请考虑使用虚拟机。扫描源代码以寻找安全漏洞听起来是一项相当艰巨的任务(坦率地说,如果学生能够在让代码正确输出的同时实现漏洞利用,那么你应该考虑加分 :P)

关于c# - 自动编译运行第三方代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10567689/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com