velocity 是如何实现introspector 自醒来屏蔽反射的
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了velocity 是如何实现introspector 自醒来屏蔽反射的相关的知识,希望对你有一定的参考价值。
velocity的标签中支持$abc 这样的语法,如果abc是一个对象,则写模板时就可以利用它来进行反射,调用一些危险的方法,如
$vm.getClass().newInstance()
#set ($exec = "kxlzx")$exec.class.forName("java.lang.Runtime").getRuntime().exec("calc")
通过反射,让系统本身出现了安全漏洞,这类危险的操作,可以通过屏蔽反射来杜绝,在velocity属性中添加一行配置即可
runtime.introspector.uberspect = org.apache.velocity.util.introspection.SecureUberspector
本文主要讨论velocity如果通过它来屏蔽反射,达到自醒(只能使用getter/setter,普通方法),欢迎补充。
以上是关于velocity 是如何实现introspector 自醒来屏蔽反射的的主要内容,如果未能解决你的问题,请参考以下文章