问题描述
注意 java.lang.reflect.Method.invoke
在检查
直接呼叫者
Secure Coding Guidelines for Java SE 中,声明在确定直接调用者时忽略 Method.invoke
实现,否则将在所有权限下执行操作。到目前为止,这对我来说很清楚,但后来又说:“因此,避免 Method.invoke
”。
我理解在确定直接调用者时忽略 Method.invoke
实现是好的,但不知道为什么应该避免它。避免它的原因是什么?
解决方法
使用反射调用方法时存在固有风险(如在 Java 或 C# 中)。引用 Unsafe use of reflection
的 OWASP 漏洞描述页面如果攻击者可以提供应用程序随后使用的值 确定要实例化的类或调用的方法, 攻击者有可能通过创建控制流路径 应用程序开发人员不打算使用的应用程序。