CC防御指引
CC攻击防护设置
步骤一:登录控制台
- 登录 Sudun 控制台:https://protal.sudun.com/view/login
- 进入 WEB加速 > 域名管理 >配置
- 点击CC防护下面的各类型按钮,根据需求开启
1、每秒请求数:系统实时监测站点访问情况,超过设定阈值将自动启动下方所配置的CC防护策略;
2、默认规则:开启此防御后将启动本站内置的默认CC防御模块,可兼容所有WEB防御目标零误封;
3、验证码防御:将启用特征智能模块检测,恶意来源IP需操作浏览器通过机器识别后才可继续访问;
4、无感防御:将启动浏览器指纹CC防护结合浏览器的指纹统计信息判断识别异常客户端的CC攻击行为;
5、随机数防御:针对同时海量IP请求域名伪造根目录及文件名等大量不同随机数的CC攻击行为识别;
6、关闭CC防御:将会对每秒请求数设置为不限制,仅对系统默认内置防护和自定义防护规则防护生效;
7、API专用防御:API防御目前采用SHA256+ECDSA签名方式,请保护好私钥不泄漏, 签名完整流程;
API专用防御说明
1. 签名算法概述
算法类型:ECDSA (secp256k1)
哈希算法:SHA256
输出格式:r(32 bytes) || s(32 bytes) || recid(1 byte),总长度65 bytes
2. 签名流程
- 构建消息 msg → hash = SHA256(msg)
- 使用私钥签名,得到 (r,s),low-s 规范化
- 计算 recid (0 或 1),输出 raw_signature = r||s||recid
3. 示例(javascript)
const ec = new EC('secp256k1')
const key = ec.keyFromPrivate(SIGNKEY, 'hex')
const ts = Math.floor(Date.now() / 1000) // 获取当前时间戳
const content = md5('hello world'); // hello world 可以替换成其他的
const message = `${ts}_${content}_${ts}`; // 签名的原始内容
const hash = CryptoJS.SHA256(message).toString(CryptoJS.enc.Hex)
const signature = key.sign(hash, { canonical: true })
const recid = key.getPublic(true)
const r = signature.r.toArrayLike(Buffer, 'be', 32)
const s = signature.s.toArrayLike(Buffer, 'be', 32)
// 最终签名结果
const rawSigHex = Buffer.concat([r, s, Buffer.from([recid])]).toString('hex')

