提问人:Aby 提问时间:11/11/2023 最后编辑:Aby 更新时间:11/11/2023 访问量:26
JavaScript Fiddler 代码安全控制建议 [已关闭]
javascript fiddler code security controls suggestions [closed]
问:
我正在开发一个像 jsfiddle.net 一样的 javascript 小提琴手(开发、测试和共享工具),但具有特定的操作环境。最终必须执行输入的 javascript - 我正在使用 eval('$js') 来执行。
如何防止恶意代码潜入并破坏该工具(或共享链接的任何人)?
我目前有一个代码嗅探器,可以查找一些被禁止的关键字:、、、**window
XMLHttpRequest
ActiveXObject
addEventListener
setRequestHeader
appendChild
setInterval
setTimeout
createElement
innerHTML
outerHTML
eval
Function
function
fireEvent
dispatchEvent
createEvent
ajaxPost
removeChild
replaceChild
addPanelEvents
preventDefault
stopPropagation
location
pushState
fetch
localStorage
sessionStorage
cookie
indexedDB
submit
const isMalicious = maliciousPatterns.some(pattern => js.includes(pattern));
我在页面上还有一个 content-security-policy 标题:
header("Content-Security-Policy: "
."default-src 'unsafe-eval' $allowedSites 'nonce-$nonce'; "
."style-src 'self' 'unsafe-inline' $styleSites; "
."img-src 'self' data: $imgSites; "
."connect-src 'self' data:; "
."script-src 'self' 'unsafe-inline' 'unsafe-eval' $scriptSites");
...我偶尔会使用nonce:<div contenteditable ... nonce='$nonce'>....
我还应该注意哪些其他事情?
jsfiddle 或 codepen 会应用哪些东西来避免问题?
** 我不确定如何能够轻松跟上未来的新语言更新。
答: 暂无答案
评论