用户执行网站安全 ruby​​ 脚本

发布于 2024-12-25 23:43:34 字数 284 浏览 0 评论 0原文

假设我想为用户提供将代码放入文本区域并出于教育目的执行它的可能性。

例如,用户使用 print "hello" 填写输入,

他提交表单 ->代码由服务器处理->用户看到结果

,但我想避免这样的事情:

  • 操纵文件系统
  • dos 攻击,比如
  • 在网络上执行请求的
  • forks ...

所以这个 ruby​​ 解释器应该仅限于一些基本功能。

是否可以?

suppose that i want to provide user possibility to put code into textarea and execute it for education purposes.

for example user fills input with print "hello"

he submits form -> code is processed by server -> user sees result

but i want to avoid such things as:

  • manipulating file system
  • dos attack like forks
  • doing requests on web
  • ...

so this ruby interpreter should be limited only to some basic functions.

is it possible?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

傻比既视感 2025-01-01 23:43:34

我认为你可以使用JRuby(http://jruby.org/)实现。您可以使用 JVM 安全策略功能创建沙箱。在这种情况下,您无需担心用户输入 - JRuby 执行的脚本将受到安全设置的限制。

I think you can use JRuby (http://jruby.org/) implementation. You can create sandbox by using JVM security policy features. In such case you don't need to worry about user input - script that is being executed by JRuby will be limited by security settings.

盗梦空间 2025-01-01 23:43:34

我不知道解释器的限制,但我认为您需要在提交之前解析输入,如果您有类似 system("rm -rf ~") 的内容,请勿将其发送到解释器并使用重定向警告。

I dont know about limits of interpreter, but I think you need parse input before submitting it and if you have something like system("rm -rf ~") don't send it to interpreter and redirecting with warning.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文