我需要将 eval() 用于我正在构建的基于 JavaScript 的 Web 应用程序。
这样做的原因是我想让人们编写自己的函数,这些函数存储为文本,并且可以在需要下次使用时在站点上重复使用。按照 jsFiddle 的思路思考。
该代码将被运行和评估,或者将作为脚本标签插入。无论哪种方式,它都会使网站对恶意用户的 JavaScript 注入开放。因此,我打算过滤提交的代码,或者当用户加载另一个用户的脚本时,会收到一条警告消息,提示用户在继续之前应该先阅读/检查脚本。
到目前为止,我正在寻找过滤/警告以下关键字:
eval
execScript
script
window.*
setInterval
setTimeout
alert
confirm
prompt
document.*
write
innerHTML
insertAdjacentHTML
createElement
appendChild
setAttribute
form.*
submit
XMLHttpRequest
jQuery.*
ajax
base64encode
base64decode
我还没有开始测试,所以这些只是我最初的想法。
有人对此有经验或意见吗?
谢谢,戴夫