java中运行javascript代码有可能被注入攻击吗? 5C

由于项目需要频繁增加小型服务,且不希望更新整个web服务。在和热更新机制以及脚本引擎的对比选择中,我们使用了ScriptEngineManager在java中运行js脚本。目前的调用机制是web页面发起带有脚本名和方法名的参数请求项目。项目中根据脚本名找到相应的脚本并执行传入的函数名,这里用的是ScriptEngineManager.invokeFunction。现在想请大家来讨论一下这种方式会不会存在被脚本注入的风险!感恩...
补充一点如下:由于业务的关系,不存在脚本和方法的调用权限问题,意思是在脚本外层已经做好了用户和脚本所对应的权限分配。这里的注入是指纯粹的代码注入,如提交js代码之类的参数。请各位前辈帮小弟讨论分析一下!

6个回答

可能 通常都回打包成js'文件 防止注入

不会的,javascript的机制决定了的

肯定能啊,具体去看看官网··········

回,最好对输入的内容做转义处理。

会的。若想防止注入,那获取数据的时候要使用JSTL中的

如果你的 参数只有脚本名和方法名,应该没有注入的分险,后端可以验证一下脚本名和方法名,如果不存在就报错

u011606457
_1_1_7_ 回复jiangkunou: 业务参数也可以做校验 ,有些框架可以配置正则表达式之类的自动校验值域
大约 2 年之前 回复
jiangkunou
jiangkunou 脚本名和方法名是必要参数,用于定位具体执行的js函数, 函数内还会接受各种业务参数呢..... 这个也是我比较担心的一块
大约 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐