注意:我无法在网站上找到问题,如果存在,请将其关闭为重复。
对于应用程序,我们有一个使用 javascript 的基于浏览器的客户端。我们的应用程序遵循客户端服务器架构,但仅在本地部署,即它不暴露于 Web。我正在考虑为用户(使用 javascript)提供有限的脚本支持,这有点类似于在基于桌面的应用程序(如 matlab)中提供的支持
- 允许用户编写脚本是否安全。
- 什么是安全的实施方式(评估,使用 iframe 等)
注意:我无法在网站上找到问题,如果存在,请将其关闭为重复。
对于应用程序,我们有一个使用 javascript 的基于浏览器的客户端。我们的应用程序遵循客户端服务器架构,但仅在本地部署,即它不暴露于 Web。我正在考虑为用户(使用 javascript)提供有限的脚本支持,这有点类似于在基于桌面的应用程序(如 matlab)中提供的支持
从安全角度来看:在页面上运行脚本不是问题,用户已经可以通过按下f12
并打开控制台来做到这一点。
问题是如果您允许用户将 js 保存到您的数据库中,然后由另一个用户将其加载到页面上。
想象一下,如果您有一个允许script
标签的评论系统,那么一个潜在的恶作剧者现在可以执行用户可以执行的任何功能。
甚至是锚标签<a href="javascript:pageFunction()">click on me</a>
如果它只是为了用户,我会将脚本附加到正文中。
var scr = document.createElement("script");
scr.textContent = 'alert("hi")';
document.body.appendChild(scr);