Quick security info for a given URL
Project description
quicksec
A command-line tool for quickly auditing the security posture of any website. Pass it a URL and get a structured report covering TLS, HTTP security headers, HTTPS enforcement, and cookie flags — no config needed.
Install
pip install quicksec
Or install from source:
git clone https://github.com/nGubbins/quicksec.git
cd quicksec
pip install .
Usage
quicksec <url>
The scheme is optional — quicksec example.com defaults to https://.
Examples
quicksec github.com
quicksec https://example.com
quicksec http://legacy-site.com
Sample output
==========================================================
Security check >> github.com
==========================================================
--- SSL / TLS ---
[OK] Valid certificate CN=github.com
[OK] Expires 2026-06-03 (39 days)
[INFO] Protocol: TLSv1.3 | Cipher: TLS_AES_128_GCM_SHA256
[INFO] SANs: github.com, www.github.com
--- HTTPS redirect ---
[OK] HTTP -> HTTPS redirect: yes
--- Security headers ---
[WARN] Server header present: github.com
[OK] Strict-Transport-Security: max-age=31536000; includeSubdomains; preload
[OK] Content-Security-Policy: default-src 'none'; base-uri 'self'; ...
[OK] X-Frame-Options: deny
[OK] X-Content-Type-Options: nosniff
[OK] Referrer-Policy: origin-when-cross-origin, strict-origin-when-cross-origin
[WARN] Permissions-Policy: missing
--- Cookies ---
[OK] _gh_sess [Secure, HttpOnly, SameSite=Lax]
[WARN] _octo [Secure, SameSite=Lax] (missing: HttpOnly)
What it checks
| Check | Details |
|---|---|
| SSL / TLS | Certificate validity, expiry (warns under 30 days), TLS version, cipher suite, SANs |
| HTTPS redirect | Whether plain HTTP redirects to HTTPS |
| Security headers | Strict-Transport-Security, Content-Security-Policy, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy |
| Info disclosure | Flags Server and X-Powered-By headers |
| Cookies | Checks each cookie for Secure, HttpOnly, and SameSite flags |
Status indicators
| Tag | Meaning |
|---|---|
[OK] |
Passes the check |
[WARN] |
Present but could be improved, or missing a recommended header |
[FAIL] |
Missing or broken (e.g. expired cert, SSL error) |
[INFO] |
Informational — no judgement |
Use cases
- Pre-launch audit — run before deploying a new site to catch missing headers or misconfigured TLS
- Third-party vendor review — quickly assess the security hygiene of an API or partner domain
- Security regression check — spot headers that quietly disappeared after a config change
- CTF / bug bounty recon — fast first-pass on a target to see what's exposed
Development
git clone https://github.com/nGubbins/quicksec.git
cd quicksec
python -m venv env
source env/bin/activate # Windows: env\Scripts\activate
pip install -r requirements.txt
pytest
License
MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file quicksec-0.1.2.tar.gz.
File metadata
- Download URL: quicksec-0.1.2.tar.gz
- Upload date:
- Size: 5.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
104a8b4abf8922ceac0e6817fa9799fe5b6fb39f9e69d95c69f1e48b4b0bd23c
|
|
| MD5 |
ba304f32e16ebe6322c2a7012a9b8b64
|
|
| BLAKE2b-256 |
84b44e08cb4aace28c532875316e409c62e0f727fb858583fa878f08f74d32b9
|
Provenance
The following attestation bundles were made for quicksec-0.1.2.tar.gz:
Publisher:
publish.yml on nGubbins/quicksec
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
quicksec-0.1.2.tar.gz -
Subject digest:
104a8b4abf8922ceac0e6817fa9799fe5b6fb39f9e69d95c69f1e48b4b0bd23c - Sigstore transparency entry: 1376526483
- Sigstore integration time:
-
Permalink:
nGubbins/quicksec@a7fe1817ffa0c79c926c1f60527e95c0dcf121bd -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/nGubbins
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a7fe1817ffa0c79c926c1f60527e95c0dcf121bd -
Trigger Event:
push
-
Statement type:
File details
Details for the file quicksec-0.1.2-py3-none-any.whl.
File metadata
- Download URL: quicksec-0.1.2-py3-none-any.whl
- Upload date:
- Size: 4.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cefdf554c117cfaf380c555b27911d9ee53426748645202f1a7d03ef94d15e56
|
|
| MD5 |
76bc1004be1c08e1111d0c87f1143ad1
|
|
| BLAKE2b-256 |
6dc6efe78fd3006bbcc4588be62364cdc49e45a8c98d210760e8941ec278439f
|
Provenance
The following attestation bundles were made for quicksec-0.1.2-py3-none-any.whl:
Publisher:
publish.yml on nGubbins/quicksec
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
quicksec-0.1.2-py3-none-any.whl -
Subject digest:
cefdf554c117cfaf380c555b27911d9ee53426748645202f1a7d03ef94d15e56 - Sigstore transparency entry: 1376526498
- Sigstore integration time:
-
Permalink:
nGubbins/quicksec@a7fe1817ffa0c79c926c1f60527e95c0dcf121bd -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/nGubbins
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a7fe1817ffa0c79c926c1f60527e95c0dcf121bd -
Trigger Event:
push
-
Statement type: