fix: 修复 P0 安全和并发问题

- 修复敏感信息泄露:移除 Drive API 完整响应体打印,只记录状态码
- 修复并发安全问题:升级为 RWMutex,读写分离提升性能
- 修复资源泄漏风险:使用 defer 确保 resp.Body 正确关闭
This commit is contained in:
IanShaw027
2026-01-01 15:35:08 +08:00
parent c63192fcb5
commit 1d5e05b8ca
2 changed files with 9 additions and 7 deletions

View File

@@ -94,10 +94,12 @@ func (c *driveClient) GetStorageQuota(ctx context.Context, accessToken, proxyURL
resp.StatusCode == http.StatusInternalServerError ||
resp.StatusCode == http.StatusBadGateway ||
resp.StatusCode == http.StatusServiceUnavailable) && attempt < maxRetries-1 {
_ = resp.Body.Close()
backoff := time.Duration(1<<uint(attempt)) * time.Second
jitter := time.Duration(rng.Intn(1000)) * time.Millisecond
if err := sleepWithContext(backoff + jitter); err != nil {
if err := func() error {
defer func() { _ = resp.Body.Close() }()
backoff := time.Duration(1<<uint(attempt)) * time.Second
jitter := time.Duration(rng.Intn(1000)) * time.Millisecond
return sleepWithContext(backoff + jitter)
}(); err != nil {
return nil, fmt.Errorf("request cancelled: %w", err)
}
continue