mirror of
https://github.com/louislam/uptime-kuma.git
synced 2025-04-02 06:22:20 +00:00
Add files via upload
add test_apicache_ReDos.js
This commit is contained in:
parent
02f4cba9c6
commit
e243a1a3a6
1 changed files with 22 additions and 0 deletions
22
test/backend-test/test_apicache_ReDos.js
Normal file
22
test/backend-test/test_apicache_ReDos.js
Normal file
|
@ -0,0 +1,22 @@
|
|||
const semver = require("semver");
|
||||
let test;
|
||||
const nodeVersion = process.versions.node;
|
||||
if (semver.satisfies(nodeVersion, ">= 18")) {
|
||||
test = require("node:test");
|
||||
} else {
|
||||
test = require("test");
|
||||
}
|
||||
const apicacheModule = require("../../server/modules/apicache/apicache.js");
|
||||
|
||||
const assert = require("node:assert");
|
||||
|
||||
test("Test ReDos - attack string", async (t) => {
|
||||
const getDuration = apicacheModule.getDuration;
|
||||
const str = "" + "00".repeat(100000) + "\u0000";
|
||||
const startTime = performance.now();
|
||||
getDuration(str);
|
||||
const endTime = performance.now();
|
||||
const elapsedTime = endTime - startTime;
|
||||
const reDosThreshold = 9000;
|
||||
assert(elapsedTime <= reDosThreshold, `🚨 可能存在 ReDoS 攻击!getDuration 方法耗时 ${elapsedTime.toFixed(2)} 毫秒,超过阈值 ${reDosThreshold} 毫秒。`);
|
||||
});
|
Loading…
Add table
Reference in a new issue