【问题标题】:Why avoid Method.invoke?为什么要避免 Method.invoke?
【发布时间】:2021-06-25 01:34:18
【问题描述】:

guideline 9-11 / ACCESS-11

请注意 java.lang.reflect.Method.invoke 被忽略以检查 直接调用者

Secure Coding Guidelines for Java SE 中,声明在确定直接调用者时会忽略Method.invoke 实现,否则将使用所有权限执行该操作。到目前为止,这对我来说很清楚,但随后声明:

因此,避免Method.invoke

我知道在确定直接调用者时忽略 Method.invoke 实现是很好的,但为什么应该避免呢?避免它的原因是什么?

【问题讨论】:

    标签: java java-security


    【解决方案1】:

    在调用方法时使用反射存在固有风险(例如在 Java 或 C# 中)。引用Unsafe use of reflection的OWASP漏洞描述页面

    如果攻击者可以提供应用程序使用的值 确定要实例化哪个类或调用哪个方法, 攻击者有可能通过以下方式创建控制流路径 应用程序开发人员不打算使用的应用程序。

    【讨论】:

    • @Philippe - 感谢您指出链接。我现在已经更正了!
    猜你喜欢
    • 1970-01-01
    • 2018-11-13
    • 2011-11-15
    • 1970-01-01
    • 2010-12-28
    • 1970-01-01
    • 2019-03-23
    • 2011-05-09
    相关资源
    最近更新 更多