I built SecureBrowse, a C++17 web request engine, to understand what “safe” request handling actually involves under the hood.
The project is named SecureBrowse and is written in C++17.
- The mandatory pipeline stages before any request goes out are:
I use C++17, libcurl for TLS, SQLite for logging, CMake for builds, and GoogleTest for unit testing.
My biggest takeaway is that validation, security checks, and logging are strongest as a pipeline, where each step protects the next.
- Validates the URL
- Checks the domain against a blocklist
- Verifies TLS certificates over HTTPS (libcurl)
- Logs request metadata to SQLite

