Skip to main content

SSRF-safe URL validation for Python

Project description

url_jail

SSRF-safe URL validation for Rust and Python.

The Problem

Your application fetches a user-provided URL:

response = requests.get(user_url)

An attacker submits http://169.254.169.254/latest/meta-data/iam/credentials.

Result: Your AWS keys are in their inbox. Your S3 buckets are public. Your cloud bill is six figures.

This is Server-Side Request Forgery (SSRF), the vulnerability behind:

  • CVE-2024-0243: LangChain RecursiveUrlLoader (CVSS 8.6)
  • CVE-2025-2828: LangChain RequestsToolkit (CVSS 9.1)
  • Capital One 2019 breach (100M+ records)

"I'll just block 169.254.169.254"

Attackers encode IPs in ways your blocklist won't catch:

Attack Your Blocklist url_jail
http://0x7f000001/ (hex) Passes Blocked
http://0177.0.0.1/ (octal) Passes Blocked
http://2130706433/ (decimal) Passes Blocked
http://127.1/ (short-form) Passes Blocked
http://[::ffff:127.0.0.1]/ (IPv6-mapped) Passes Blocked
http://metadata.google.internal/ Maybe Blocked
DNS rebinding Passes Blocked*

* When using get_sync() or the returned Validated.ip directly.

url_jail validates after DNS resolution. Encoding tricks don't work.

Note: This library has not undergone a formal security audit. See SECURITY.md.

The Solution

Python (recommended):

from url_jail import get_sync

body = get_sync(user_url)  # Validates URL and all redirects

Python (with existing HTTP client):

from url_jail.adapters import safe_session

s = safe_session()
response = s.get(user_url)  # SSRF-safe requests.Session

Rust:

use url_jail::{validate, Policy};
use reqwest::Client;

let v = validate("https://example.com/api", Policy::PublicOnly).await?;

let client = Client::builder()
    .resolve(&v.host, v.to_socket_addr())
    .build()?;

let response = client.get(&v.url).send().await?;

Installation

pip install url_jail

# With HTTP client adapters
pip install url_jail[requests]  # or [httpx], [aiohttp], [urllib3], [all]
[dependencies]
url_jail = "0.2"

# Enable fetch() for redirect chain validation
url_jail = { version = "0.2", features = ["fetch"] }

Policies

Policy Allows Blocks
PublicOnly Public IPs only Private, loopback, link-local, metadata
AllowPrivate Private + public Loopback, metadata (for internal services)

HTTP Client Adapters (Python)

# requests
from url_jail.adapters import safe_session
s = safe_session()
response = s.get(user_url)

# httpx (sync)
from url_jail.adapters import safe_httpx_client
client = safe_httpx_client()
response = client.get(user_url)

# httpx (async)
from url_jail.adapters import safe_httpx_async_client
async with safe_httpx_async_client() as client:
    response = await client.get(user_url)

# aiohttp
from url_jail.adapters import safe_aiohttp_session
async with safe_aiohttp_session() as session:
    async with session.get(user_url) as response:
        body = await response.text()

# urllib3
from url_jail.adapters import safe_urllib3_pool
pool = safe_urllib3_pool()
response = pool.request("GET", user_url)

Advanced: Custom Blocklist

use url_jail::{PolicyBuilder, Policy};

let policy = PolicyBuilder::new(Policy::AllowPrivate)
    .block_cidr("10.0.0.0/8")
    .block_host("*.internal.example.com")
    .build();

Error Handling

use url_jail::{validate_sync, Policy, Error};

match validate_sync("http://127.0.0.1/", Policy::PublicOnly) {
    Ok(v) => println!("Safe: {}", v.ip),
    Err(e) if e.is_blocked() => {
        // Security rejection (SSRF, hostname, redirect)
        println!("Blocked: {}", e);
    }
    Err(e) if e.is_retriable() => {
        // Temporary error (DNS, timeout) - retry with caution
        println!("Temporary: {}", e);
    }
    Err(e) => println!("Error: {}", e),
}
Method Returns true for
is_blocked() SsrfBlocked, HostnameBlocked, RedirectBlocked
is_retriable() DnsError, Timeout, HttpError
url() Extracts the URL that caused the error

What's Blocked

  • Cloud metadata endpoints (AWS, GCP, Azure, Alibaba)
  • Private IPs (10.x, 172.16.x, 192.168.x) with PublicOnly
  • Loopback (127.x, ::1)
  • Link-local (169.254.x, fe80::)
  • IP encoding tricks: octal (0177.0.0.1), decimal (2130706433), hex (0x7f000001), short-form (127.1)
  • IPv4-mapped IPv6 (::ffff:127.0.0.1)

Features

Feature Description
fetch fetch() / get_sync() with redirect validation
tracing Logging for validation decisions

License

MIT OR Apache-2.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

url_jail-0.2.0-cp314-cp314-win_amd64.whl (2.3 MB view details)

Uploaded CPython 3.14Windows x86-64

url_jail-0.2.0-cp314-cp314-musllinux_1_2_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

url_jail-0.2.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

url_jail-0.2.0-cp314-cp314-macosx_11_0_arm64.whl (2.6 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

url_jail-0.2.0-cp313-cp313-win_amd64.whl (2.3 MB view details)

Uploaded CPython 3.13Windows x86-64

url_jail-0.2.0-cp313-cp313-musllinux_1_2_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

url_jail-0.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

url_jail-0.2.0-cp313-cp313-macosx_11_0_arm64.whl (2.6 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

url_jail-0.2.0-cp312-cp312-win_amd64.whl (2.3 MB view details)

Uploaded CPython 3.12Windows x86-64

url_jail-0.2.0-cp312-cp312-musllinux_1_2_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

url_jail-0.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

url_jail-0.2.0-cp312-cp312-macosx_11_0_arm64.whl (2.6 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

url_jail-0.2.0-cp311-cp311-win_amd64.whl (2.3 MB view details)

Uploaded CPython 3.11Windows x86-64

url_jail-0.2.0-cp311-cp311-musllinux_1_2_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

url_jail-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

url_jail-0.2.0-cp311-cp311-macosx_11_0_arm64.whl (2.6 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

url_jail-0.2.0-cp310-cp310-win_amd64.whl (2.3 MB view details)

Uploaded CPython 3.10Windows x86-64

url_jail-0.2.0-cp310-cp310-musllinux_1_2_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

url_jail-0.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

url_jail-0.2.0-cp310-cp310-macosx_11_0_arm64.whl (2.6 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

url_jail-0.2.0-cp39-cp39-win_amd64.whl (2.3 MB view details)

Uploaded CPython 3.9Windows x86-64

url_jail-0.2.0-cp39-cp39-musllinux_1_2_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

url_jail-0.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

url_jail-0.2.0-cp39-cp39-macosx_11_0_arm64.whl (2.6 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

Details for the file url_jail-0.2.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: url_jail-0.2.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 2.3 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for url_jail-0.2.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 bd3cb7db5ed861ae1698658835cb68c3c7c2ff18b064c88f9b9a32cf7aba3b0d
MD5 42dfa673974fe1ed86c6204083c193e2
BLAKE2b-256 45f526f6fbba6d5de227fe03e8432b50f21c73c86533dab348332705b78d1442

See more details on using hashes here.

File details

Details for the file url_jail-0.2.0-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for url_jail-0.2.0-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 63ef2306de459a15719150443861511106b720002e7f026968377651d80197f9
MD5 641ed2c442bacfa0e2de02421dcd03f8
BLAKE2b-256 460aef7e23df3d82254a46c6dacfc6de69494773644c11144e67a38fa1f8bae7

See more details on using hashes here.

File details

Details for the file url_jail-0.2.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for url_jail-0.2.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b03687bcab6b67a9f504a259dbc6021e936d7fdf5bb180656beed7c15c6b255b
MD5 dcebd2dd8e03135f35d87e5fe326a4ca
BLAKE2b-256 b88fd0ab1a12137e1efd0edbd27e8bed7bc8b8c26cff117b923423b272cba6bf

See more details on using hashes here.

File details

Details for the file url_jail-0.2.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for url_jail-0.2.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1a74ea8bc497aae1ef71114ad10cf61357877179dfb16c68b89c7f5c082534b8
MD5 b1629b5544bb3dc2a609441a9460a7d0
BLAKE2b-256 15ba02056349e78b34852038e2cfe525d63c2835d27bb2d169b8b0609c53aa97

See more details on using hashes here.

File details

Details for the file url_jail-0.2.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: url_jail-0.2.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 2.3 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for url_jail-0.2.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 eacd3abb9a9b9ef4379fe5afa5d3a3a78f5e27df35f4fbf0be407b8cb1b9725e
MD5 acfef5a8a6a298c0d66595c7de5766d7
BLAKE2b-256 ed0896c1db77557556e7f5bd7f4114dafa4546f76b2ff5d17fa25c1c95ed3b72

See more details on using hashes here.

File details

Details for the file url_jail-0.2.0-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for url_jail-0.2.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6c5e060efaa4877d0ee2a9b0bc8c9c30405e526c72092a9b143ca255b49cbf86
MD5 a63ca6ebe788a99d5a0495d71b211972
BLAKE2b-256 4a6a763e7fb9236865691c3d75ced81597ddb894f78d11ebd5486b6b9dc25fdf

See more details on using hashes here.

File details

Details for the file url_jail-0.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for url_jail-0.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 15de02b9ec8391b588507dcfc59386b2438ccb683ed58b0a36bc740dc8e5bf93
MD5 14bf460f780caa1b6a0e6ecf1e477e7d
BLAKE2b-256 7fdc0606bd72909037ea43dc84e7581ab4583d4ca41aaab7512b971875101f08

See more details on using hashes here.

File details

Details for the file url_jail-0.2.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for url_jail-0.2.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a5465e7da76d1e157edb57d7b3c7922f0465d514c749254eb2c78fc10fc99aea
MD5 1ca5c889039fabb50cc655560a48cf6c
BLAKE2b-256 3accdff74a084b14e5406c80602183ec58876c5861d553735ac5adc7d4c301ea

See more details on using hashes here.

File details

Details for the file url_jail-0.2.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: url_jail-0.2.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 2.3 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for url_jail-0.2.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 76c5eb9596ac046f9cece20bf05c0c932f40ce5b0e7d9fc33c6003f5bae4ae24
MD5 b4dc90d95e192e4def61474410fa8adb
BLAKE2b-256 8850c4759ea7def68f27068f0b5478363e83b02032e3d3a0f93f7e42214f37a1

See more details on using hashes here.

File details

Details for the file url_jail-0.2.0-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for url_jail-0.2.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 296717c16ae7a30b0566df99f209a8b4cc419587e2bd6240fe49733c8d41223b
MD5 42dc17e6b4c88014fce866dbdb90d8d8
BLAKE2b-256 52e97757faa0ccfc2aba822dbb0b3c4043c474e81ee770e54ced40c9aca4f5e7

See more details on using hashes here.

File details

Details for the file url_jail-0.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for url_jail-0.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b8fec776db25a8fb178628787db86ad66991862f0e4624c3f296b42e91b7ea5a
MD5 5bdec73fc42973beb2bd25ed50bf8f6e
BLAKE2b-256 e31fbde057519c7396c4086d11b6b6e77d2ce7b49550d0d7eb8c857eebc1f2cf

See more details on using hashes here.

File details

Details for the file url_jail-0.2.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for url_jail-0.2.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 30c8308e4c9013c09f3acd7fca1e2f8931371cad68090e73f2574f92ef472c4d
MD5 a854828d0ee8a9a4e35752a36c8d67ed
BLAKE2b-256 ce776a97c4db295522e6bdee4952bdbbd2c70f194c45a0bf8f0f7e7e1f1e43f8

See more details on using hashes here.

File details

Details for the file url_jail-0.2.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: url_jail-0.2.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 2.3 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for url_jail-0.2.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 8f219cc899f911afc36df8e5fccf786fcf489eb192ea52de753f04dde12e93bd
MD5 936062091336a98d9a754041b4b5432d
BLAKE2b-256 086a870c11fb4f3c583e942cecee29986ded62ec306a072308d9709795d35a56

See more details on using hashes here.

File details

Details for the file url_jail-0.2.0-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for url_jail-0.2.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 89e7282c553b0de4a42ef90b325fea1235d0a8781e00cdfc24f7f8fff40e97c8
MD5 93751eb9787c19ed42030641f82b7465
BLAKE2b-256 3a0303172edc59794a6253f61cbba1ae5590caddefef9c8856e3e1cc394314ed

See more details on using hashes here.

File details

Details for the file url_jail-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for url_jail-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 85e4d6b57dee67bcc801369dfc01a5b33bdc94e86d5e07e039949c0f8f04634b
MD5 cd2f58819ec3e57ab3d3df126d2b3480
BLAKE2b-256 17acb84aa1b5b45a8e83429b611be85cd5bf034d6a5592387793a010ea53d5f1

See more details on using hashes here.

File details

Details for the file url_jail-0.2.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for url_jail-0.2.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 696dc79bc83e509986e86a64235a88ae2b14d32174b8f01c6078d1a745eb4227
MD5 554a7005441a6ef53b155e1c820c4218
BLAKE2b-256 fabc59c50261754de4c963d378c2503f8497b54b7c4527a8748e3dd06e01425b

See more details on using hashes here.

File details

Details for the file url_jail-0.2.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: url_jail-0.2.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 2.3 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for url_jail-0.2.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 1b69196b618fe89b763a32b32730cd74ad1eaa7fcd1cccb8a7957ce2d8edc956
MD5 61e8efd8b222292640d2c4d0f12f59fd
BLAKE2b-256 3bb8dc967e1743143f8d0f6510260392d42aebe15a38e7fc3ad9354e98fd5d96

See more details on using hashes here.

File details

Details for the file url_jail-0.2.0-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for url_jail-0.2.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 124f4560cf3aa0f510d2f764ad9caf67d08d99fe88d9ade4ec49d62db3f785e5
MD5 4d8ee325e8fc7820f30b7bdb0ff9f732
BLAKE2b-256 1af3e576ceaefac69fa9eb7228996fbdf8163964b648c7ecfbcad31da5f7f64f

See more details on using hashes here.

File details

Details for the file url_jail-0.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for url_jail-0.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ac7e4778cc86489665037ec357ec689d7d7693ebbe735b2ac5eeaff84d546c9e
MD5 ebcd1563488f9366d5accfa86272c741
BLAKE2b-256 7c5512d3ac8363fa9a65bf4981138371dbef19a5aff903bcb1b4748e6f04685a

See more details on using hashes here.

File details

Details for the file url_jail-0.2.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for url_jail-0.2.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b6118aee9d8c0b588a3420cb5519a4ed7c20d46b6c10f6a64df70242174c26f6
MD5 7a97a6b475795948f4535d3ab619890c
BLAKE2b-256 961e69530a05411e30b3af32557b0c331270264000f181f3bcc7cc588467dd38

See more details on using hashes here.

File details

Details for the file url_jail-0.2.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: url_jail-0.2.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 2.3 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for url_jail-0.2.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 06655756c17633c56ec9be7d45460a0d1fc377bc57acfe28d081880e35b7ddb7
MD5 4a324cc98fa97762206660b320716404
BLAKE2b-256 6a9c67f4913a530f93be9bb4a503433295013ff1d0977e63ad5d8bd4a500e97e

See more details on using hashes here.

File details

Details for the file url_jail-0.2.0-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for url_jail-0.2.0-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f995088faf333bbf5c7813c47d80ba4f5b5214935bf07f42ec00e6f88d6abc3d
MD5 333770485c4e96df2c4cd0602a34b7e0
BLAKE2b-256 d1203978fe373de1892df860637e5b4e7548b08e78e8be31457eeef0edc59213

See more details on using hashes here.

File details

Details for the file url_jail-0.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for url_jail-0.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b77bc88aff055c5cad5ebb23811c735ab3283feadc36aa030635d179e0cc43e1
MD5 3fff1fd57ba1b1f0c030b0d6265cb33d
BLAKE2b-256 beb1602df8707e6091a325fa03ed7ea4f08a245fb5a2b7a6b9a2bb26380b734b

See more details on using hashes here.

File details

Details for the file url_jail-0.2.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for url_jail-0.2.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 86e92c6a6f3d57666bfe47fd7f50134e8e75a67dd724397e216f60a9f9dd0142
MD5 657037938768b9437ab0b84457e68c12
BLAKE2b-256 30f8ba32ff5f11c89d012b83bcbe828b022ab4a54aa4ccc018bdfa6de4f18fe3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page