javascript - 使用 eval() 评估学生程序员的代码。安全漏洞?

标签 javascript node.js security express socket.io

这是一个快速应用程序,我使用 CodeMirror 来允许学生程序员在美化的文本区域中编写代码。我使用 eval() 来评估该代码,以便我可以为它们输出结果。这个结果使用socket.io传递给服务器,然后返回给客户端。

var codeInput = editor.getValue();
var result = eval(codeInput);
socket.emit('sendResult', result);

使用起来安全吗?这是否比发送用户提交的用户名、密码或电子邮件更会损害我的应用程序的安全性?

最佳答案

在没有额外保护的情况下,这会显式创建 reflected cross-site scripting vulnerability在(大多数)服务器上托管的应用程序中有意

如果网站上除了托管静态内容之外没有其他内容,并且您可以保证网站上永远不会有任何其他内容,那么您只需担心对结果进行了哪些处理(在将内容提交到存储之前正确转义内容,在显示内容之前正确转义内容)。

即这应该有一个专用的虚拟主机名称。

关于javascript - 使用 eval() 评估学生程序员的代码。安全漏洞?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39415615/

相关文章:

node.js - 在包json中添加多个代理

node.js - nodejs中的next(err)和next(new Error(err))有什么区别?

security - 试图保护网站,但也保持主页(索引)页面公共(public) MCV5 asp.net 身份

java - 无法将 CryptoPermission 添加到 java.policy 文件

javascript - Sammy.js 路由 : How to wait for a library to be loaded before routing

javascript - Paperjs group.pivot 未设置为新坐标

javascript - Ember - 如何从 Controller 上的数组属性中添加/删除元素

javascript - 如何在 Node.js 中为 Promise 运行 for 循环

algorithm - www.googleadservices.com 使用了无效的安全证书

javascript - d3 将条形图转换为分组条形图