- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在从事与Codecademy类似的项目,并就如何执行潜在的恶意用户代码进行了一些研究。我可以在客户端运行html,css和js,但是我需要在服务器上执行用于编译语言的代码。
对于不熟悉Codecademy的用户,这是一个交互式网站,可教用户如何编码。存在一些编码挑战,用户输入他们的解决方案,该解决方案将在服务器上通过测试用例执行。如果代码通过测试,则允许用户继续进行下一个挑战。您可能会猜到,我最大的担心是在服务器端执行用户代码。
我认为保护后端安全的最佳方法是创建层并使用容器将编译器与服务器其余部分分开。我的计划是为每种编程语言创建微服务。我打算使用(gcp或aws)云功能来做到这一点。
在那些部分之后,我迷路了。我认为我应该使用docker实例化容器,并使用测试在该容器中运行用户的代码,然后将结果返回到主服务器。假设使用docker镜像(或使用类似compilebox的东西)会很简单,但是我不确定性能。因为每次发送解决方案时,都会从头开始构建容器,并且在运行代码后,该容器将被破坏。我的第二个担心是云功能的付款计划。我不知何故需要限制用户对服务的访问,因为我不想为服务器成本支付数百万美元。
由于我没有使用云功能的经验,因此我不确定这是否是有效的计划。我应该使用微服务还是应该创建经典的整体后端。如果您有任何其他想法或建议,请随时分享。如果我的想法是正确的,请就此案做和不做帮助。
注意:我在后端使用Node。
谢谢
最佳答案
google的katacoda在您的网站中提供了嵌入式shell:
<script src="//katacoda.com/embed.js"></script>
<div id="katacoda-scenario-1"
data-katacoda-id="<username>/<scenario-name>"
data-katacoda-color="004d7f"
style="height: 600px; padding-top: 20px;"></div>
关于node.js - 如何创建具有云功能的编码沙箱以在服务器上执行用户代码?做/不做?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58121365/
是否可以通过覆盖alert、window.location 和eval 等各种函数来对用户提交的 Javascript 进行沙箱处理? 我不是在寻找完美的解决方案。我敢肯定,有些人仍然会找到一种方法来
我想让开发人员用 Javascript 为网站编写一些自定义应用程序,但我想将其沙盒化,这样他们就不能做任何调皮的事情,比如重定向用户、将正文显示设置为无等等。我有一个命名空间Javascript,其
所以我使用一个程序,我在 lua 中编写 mods,lua 处于沙箱状态,这意味着大多数功能都被阻止,如 IO 和 OS,我什至不能使用 REQUIRE 添加库。我需要一个功能来解压缩我的一个 mod
我编写了一个简单的 RMI 服务器,并为其指定了默认的 RMISecurityManager: System.setSecurityManager (new RMISecurityManager())
我希望允许用户定义自己的函数以在程序中使用,但是,我不希望他们破坏东西 - 理想情况下我想将其限制为核心语言函数,也许是 数学模块 自定义函数将是这样的(在 user_function.py 中定义,
我需要在第一次运行我的应用程序时将一些 png 从主包复制到文档文件夹。我需要它,因为我必须将这些图像的文件路径保存在核心数据实体中。 我试过了,但是不行,有人知道为什么吗? // to copy i
我在使用 Paypal Sandbox 时遇到货币问题。 我正在使用沙盒测试我网站的定期付款(数字商品,快速结账) 一切都按预期工作。 用户点击支付。 用户被转移到paypal express che
我们正在尝试使用 StoreKit 实现简单的应用内购买(不确定它是否与它有任何关系)并且到目前为止一切顺利,但是我们面临一个特定问题:当我们退出应用时, iOS 永久要求我们登录: 只有在使用沙盒或
这个问题在这里已经有了答案: How can I sandbox Python in pure Python? (7 个回答) 关闭9年前。 我想创建一个网站,人们可以上传他们的 Python 脚本。
不是开发人员,而是想弄清楚如何生成一个 revolut 业务 api,以在 woocommerce 上设置一个沙盒 revolut 支付网关。我按照 open ssl instructions 生成
current documentation cabal 显示 sandbox子命令。 respective page on github不再包含有关沙箱的部分。 我使用的是 cabal 版本 3.2.
我有兴趣了解 extjs 沙箱,但无法在网络上找到太多相关信息。有人可以告诉或指出一些有关 extjs 沙箱是什么以及它是如何工作的相关资源。提前致谢! 最佳答案 Ext JS 沙箱只是顶级命名空间上
我有一个沙盒 Cocoa 应用程序。它有一个单窗口、多选项卡用户界面。我不使用 NSDocument,但它是一个可以编辑多个“文档”的应用程序。当应用程序关闭时,我保存打开文档的列表。当我重新启动应用
有人可以向我解释一件事吗?是否可以像在 Salesforce(开发者组织)中那样为开发者获得免费的 NetSuite 沙盒帐户? 最佳答案 您可以成为社区开发者,并获得一个免费的 Netsuite 帐
我正在尝试创建到 Revolut 的客户端连接。我正在关注他们的 tutorial ,但是我被困在 交易所授权码 . 到目前为止我做了什么: 在他们的 sanbox 上创建了企业帐户 在此处添加了我的
因此,Lua 似乎是在我的应用程序中实现安全“用户脚本”的理想选择。 但是,大多数嵌入lua的示例似乎都包含加载所有标准库,包括“io”和“package”。 所以我可以从解释器中排除这些库,但即使是
因此,我尝试使用插件包从源文件动态加载 haskell 函数。源文件依赖于带有模块 Foo.Bar 的包 foo。我正在 Cabal 沙箱中运行我的项目,其中安装了 foo。我的主程序和我使用插件加载
我正在使用 Pipeline Pilot 进行一些工作,并注意到所有内置的 HTML 组件都可以执行某些操作,例如可折叠面板、选项卡或任何其他可能具有我无法访问的 javascript 的内容,从而导
我今天获得了 Instagram api 并实时添加了我的网站,我看到写: 客户端状态:沙盒模式上线 为什么我无法点击“上线”按钮? 最佳答案 不过,您需要开始提交以获得批准才能上线: 网站的 Fee
我有一些代码正在尝试使用这样的结构进行测试(根据 Cleaning up sinon stubs easily ): function test1() { // manually create
我是一名优秀的程序员,十分优秀!