javascript - 针对未经验证的代码保护 SSJS

标签 javascript security trusted-vs-untrusted

我想使用 node.js(或其他 SSJS 解决方案),在内部运行我自己的代码 + 外部编写的代码(不受信任)。

有什么方法可以分离和保护我自己的代码吗?我可以限制不受信任代码的模块和系统影响(限制对文件、非 HTTP 端口等的访问)吗?

最佳答案

你可以看看这个项目,看起来很有前途:

http://github.com/gf3/node-sandbox

就个人而言,我不使用 Node 来执行任意 SSJS。您可能不会喜欢这个解决方案,但它对我来说效果很好大约一年:

Spidermonkey 的 API 有一个 Perl 实现(Spidermonkey 是 Firefox 的 JS 引擎)that's available .我在一些 CGI 的帮助下将其连接起来。您可以在其中准确指定您想要公开的功能(当然,它在 Perl 中...blech)并执行您喜欢的任何代码。没有漏洞风险,因为整个设置是完全沙盒化的。它不模拟 DOM。

我在我的服务器上实现它(以防止滥用)的方式是颁发 token ,通过不同服务器上的 REST API 授予一次性访问权限。这是一个简单的 HMAC 实现,其中包含一个时间戳以强制执行 token 的合法性。当 Perl 脚本收到请求时,它会验证 token 并处理脚本(脚本应该只是 POST 请求的一部分)。然后 Perl 脚本只写入结果。我的服务器设置为在大约 10 秒时超时。

希望这对您有所帮助!

关于javascript - 针对未经验证的代码保护 SSJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3312958/

相关文章:

android - 在 node.js 服务器中验证谷歌授予的 OAuth token 的正确方法是什么?

java - Spring Security 集成到 Activity 目录中

javascript - 无法从 iframe 访问浏览器平板电脑(Firefox 除外)中的父级 javascript

javascript - 计算出的Form数据存在于其他元素中

javascript - 使用 Iframe 在 Javascript 中打印 PDF 文件

iframe - 如何防止 Iframe 被黑客攻击

asp.net - 表单例份验证是否可以防止 session 劫持?

sql - postgres 中 SQL 以外的语言

java - 如何修复 CWE 829 - 包含来自不受信任的控制领域的功能

javascript - 如何在 MVC 5 中通过单个 Ajax POST 请求发送 ViewModel 和文件?