客户端上用于运行不受信任代码的JavaScript eval()
JavaScript eval() on client-side for running untrusted code
我一直在研究在javascript网页的客户端上使用eval()的安全性影响。
我正在实现一个网站,它应该允许用户运行自己的代码(写在页面上),并在同一页面上的另一个div上看到一些可视化结果。
从本质上讲,我希望用户能够编写有效的JavaScript代码,并让它在同一页面上操作画布。
不需要对代码进行服务器端评估。
我看过Jailed和Caja,但我认为它们可能会增加不需要的额外复杂性。
我知道做这类事情的正确方式是在"沙盒"中,无法访问我的代码库的其余部分,然而,我的需求是,我实际上无法定义一个简单的API来提供安全的入口/出口点。。。我希望用户能够使用任何JavaScript代码,我不想写一个解释器来提供API。
假设不需要服务器端评估,并且在web会话中应该只有一个用户执行自己的代码,那么使用eval()安全吗?
如果您的逻辑中没有允许一个人发布代码供其他人使用的路径,那么您可以按原样使用eval()
。
您的情况与任何拥有浏览器和开发工具的用户没有什么不同,在这些工具中,他/她可以运行他们想要的任何代码。
相关文章:
- Javascript eval()无法处理传递的字符串
- Semi-sandboxing Javascript eval
- javascript eval方法语法
- JavaScript eval() and const
- mongo javascript --eval is failing
- Javascript eval查询字符串
- javascript eval删除问号后的所有内容
- Javascript eval(0047) returns 39
- Javascript eval - obfuscation?
- JavaScript eval in JavaApplication: "javax.script.scrip
- JavaScript eval(“{}”) 返回行为
- 获取 eval 的“窗口”对象,并列出所有变量?Javascript eval inline html.
- 如何将二进制文字传递给 JavaScript eval
- 你如何让 javascript eval 返回一个字符串而不是一个变量
- Javascript eval() for Json 字符串注入了全局作用域函数
- JavaScript eval() 失败与 window.external.notify(),适用于 window.al
- Javascript eval 在计算数学表达式时,如果使用的数字以 0 开头,则给出错误的输出
- Javascript - eval() `{}` expression
- 如何避免此javascript eval()
- 客户端上用于运行不受信任代码的JavaScript eval()