☰
  • 首页
  • 规则分类
  • 项目介绍
search
•••

避免引用危险符号名称

1.10 ID_dangerousName
目录 › next › previous

弱加密、弱哈希、弱随机、不安全的协议等相关库、函数、类、宏、常量等名称不应出现在代码中。

这种危险符号名称主要来自:

  • 低质量随机数生成算法,如 srand、rand 等
  • 不再适用的哈希算法,如 MD2、MD4、MD5、MD6、RIPEMD 以及 SHA-1 等
  • 非加密协议,如 HTTP、FTP 等
  • 低版本的传输层安全协议,如 TLSv1.2 之前的版本
  • 弱加密算法,如 DES、3DES 等

示例:

#include <openssl/md5.h>   // Non-compliant, obsolete hash algorithm

const string myUrl = "http://foo/bar";   // Non-compliant, use https instead

void foo() {
    MD5_CTX c;       // Non-compliant
    MD5_Init(&c);    // Non-compliant, obsolete hash algorithm
    ....
}

void bar() {
    srand(0);        // Non-compliant, unsafe random seed
    EVP_des_ecb();   // Non-compliant, unsafe encryption algorithm
    ....
}

参考

CWE-326 CWE-327 SEI CERT MSC25-C
Copyright©2024 360 Security Technology Inc., Licensed under the Apache-2.0 license.