mirror of
https://wget.la/https://github.com/Wxw-Gu/WechatExplorer
synced 2026-08-17 19:47:08 +08:00
test: 建立桌面端自动化回归测试体系并完善跨平台 CI
(cherry picked from commit 74267ae2f63f8256c3da84b04f5b330e6e9d4c67)
This commit is contained in:
@@ -13,6 +13,7 @@ const sanitize = (value: unknown, depth = 0): unknown => {
|
||||
return value
|
||||
.replace(/\bsk-[a-z0-9_-]{8,}\b/gi, '***')
|
||||
.replace(/\bBearer\s+[a-z0-9._~-]{8,}\b/gi, 'Bearer ***')
|
||||
.replace(/\b(?:0x)?[a-f0-9]{64}\b/gi, '***')
|
||||
.slice(0, 2000)
|
||||
}
|
||||
if (Array.isArray(value)) return value.slice(0, 30).map((item) => sanitize(item, depth + 1))
|
||||
@@ -56,7 +57,7 @@ export class AppLogger {
|
||||
mode: isPackagedRuntime() ? 'packaged' : 'development',
|
||||
level: entry.level,
|
||||
scope: String(entry.scope || 'app').slice(0, 80),
|
||||
message: String(entry.message || '').slice(0, 500),
|
||||
message: String(sanitize(entry.message || '')).slice(0, 500),
|
||||
details: sanitize(entry.details || {})
|
||||
}
|
||||
fs.appendFileSync(this.logPath, `${JSON.stringify(record)}\n`, { encoding: 'utf8' })
|
||||
|
||||
@@ -203,9 +203,11 @@ function getMimeType(extension) {
|
||||
function strictRemovePadding(buffer) {
|
||||
if (buffer.length === 0) return buffer
|
||||
const paddingLength = buffer[buffer.length - 1]
|
||||
if (paddingLength <= 0 || paddingLength > 16 || paddingLength > buffer.length) return buffer
|
||||
if (paddingLength <= 0 || paddingLength > 16 || paddingLength > buffer.length) {
|
||||
throw new Error('invalid PKCS#7 padding')
|
||||
}
|
||||
for (let index = buffer.length - paddingLength; index < buffer.length; index += 1) {
|
||||
if (buffer[index] !== paddingLength) return buffer
|
||||
if (buffer[index] !== paddingLength) throw new Error('invalid PKCS#7 padding')
|
||||
}
|
||||
return buffer.subarray(0, buffer.length - paddingLength)
|
||||
}
|
||||
@@ -1636,19 +1638,13 @@ export class ImageDecryptService {
|
||||
private strictRemovePadding(buffer: Buffer): Buffer {
|
||||
if (buffer.length === 0) return buffer
|
||||
const lastByte = buffer[buffer.length - 1]
|
||||
if (lastByte <= 16 && lastByte > 0) {
|
||||
const paddingLength = lastByte
|
||||
let valid = true
|
||||
for (let i = buffer.length - paddingLength; i < buffer.length; i++) {
|
||||
if (buffer[i] !== lastByte) {
|
||||
valid = false
|
||||
break
|
||||
}
|
||||
}
|
||||
if (valid) {
|
||||
return buffer.subarray(0, buffer.length - paddingLength)
|
||||
}
|
||||
if (lastByte <= 0 || lastByte > 16 || lastByte > buffer.length) {
|
||||
throw new Error('invalid PKCS#7 padding')
|
||||
}
|
||||
return buffer
|
||||
const paddingLength = lastByte
|
||||
for (let i = buffer.length - paddingLength; i < buffer.length; i += 1) {
|
||||
if (buffer[i] !== lastByte) throw new Error('invalid PKCS#7 padding')
|
||||
}
|
||||
return buffer.subarray(0, buffer.length - paddingLength)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user