HarperFast / HarperFast/harper

[Security][LOW] Server-Timing header exposes internal processing duration

Open
#572 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
89
Forks
10
Avg merge
2d 6h
Merged PRs (30d)
200

Description

## Summary

Harper adds a `Server-Timing: hdb;dur=X.XX` header to all responses by default, revealing per-request internal processing time to any observer.

**Example:**
```
Server-Timing: hdb;dur=3.14
```

## Risk

- Timing data can be used for enumeration (e.g. distinguishing valid vs. invalid records or users by response latency).
- Expensive operations become visible, making it easier for an attacker to identify high-cost paths for DoS targeting.

## Recommendation

Make the `Server-Timing` header opt-in rather than on by default, or disable it when Harper is not in a development/debug mode. If useful for internal performance monitoring, consider exposing it only to authenticated requests or via a config flag in `harperdb-config.yaml` (e.g. `http.serverTiming: false`).

## Severity

**Low** — indirect risk; primarily useful as an aid to other attacks rather than an exploit in its own right.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.