CodeQL 文档

错误的类比较

ID: cs/class-name-comparison
Kind: problem
Security severity: 
Severity: warning
Precision: medium
Tags:
   - reliability
   - correctness
   - external/cwe/cwe-486
Query suites:
   - csharp-security-and-quality.qls

点击查看 CodeQL 存储库中的查询

根据对象的类型名称检查其类型不适用于未来的更改,并且可能允许攻击者注入恶意类。

建议

实现对对象类型的检查,该检查不应仅仅基于其类名。

示例

在此示例中,帐户类型的检查完全基于类名,并且不可靠。

更恰当的做法是像这样检查 account 的类型

class ErroneousClassCompareFix
{
    public static void ApproveTransaction(object account, Transaction transaction)
    {
        if (account.GetType() == typeof(Trusted.Bank.Account))
        {
            transaction.Process();
        }
    }
}
  • ©GitHub 公司
  • 条款
  • 隐私