Skip to main content

x-lock bot protection middleware for Python — invisible alternative to reCAPTCHA

Project description

xlock-py

Invisible bot protection middleware for Python. Drop-in replacement for reCAPTCHA, Turnstile, and hCaptcha — no visual challenges, no user friction.

Supports FastAPI, Django, and Flask.

Install

# Core (Django — no extra deps)
pip install xlock-py

# FastAPI / Starlette
pip install xlock-py[fastapi]

# Flask
pip install xlock-py[flask]

# Everything
pip install xlock-py[all]

Quick Start

FastAPI / Starlette

from fastapi import FastAPI
from xlock import XLockMiddleware

app = FastAPI()
app.add_middleware(
    XLockMiddleware,
    site_key="sk_...",
    protected_paths=["/api/auth", "/api/checkout"],
)

Django

# settings.py
MIDDLEWARE = [
    "xlock.XLockDjangoMiddleware",
    # ... other middleware
]

XLOCK_SITE_KEY = "sk_..."
XLOCK_PROTECTED_PATHS = ["/api/auth/", "/api/checkout/"]

Flask

from flask import Flask
from xlock import XLockFlask

app = Flask(__name__)
xlock = XLockFlask(app, site_key="sk_...", protected_paths=["/api/auth"])

Direct Verification

from xlock import verify

result = verify(token="v3.abc123...", site_key="sk_...", path="/api/login")
if result.blocked:
    print(f"Blocked: {result.reason}")

Configuration

Option Env Var Default Description
site_key XLOCK_SITE_KEY Your x-lock site key
api_url XLOCK_API_URL https://api.x-lock.dev API endpoint
fail_open XLOCK_FAIL_OPEN True Allow requests on API errors
protected_paths XLOCK_PROTECTED_PATHS [] Path prefixes to protect

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

xlock_py-0.1.0.tar.gz (5.4 kB view details)

Uploaded Source

Built Distribution

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

xlock_py-0.1.0-py3-none-any.whl (6.9 kB view details)

Uploaded Python 3

File details

Details for the file xlock_py-0.1.0.tar.gz.

File metadata

  • Download URL: xlock_py-0.1.0.tar.gz
  • Upload date:
  • Size: 5.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for xlock_py-0.1.0.tar.gz
Algorithm Hash digest
SHA256 7c32a567e7ef53d8c437dda8f5987f6db776452824b32e9e7900ef13ecb828c2
MD5 11ce1db156a520c22fbbadbddecef5dd
BLAKE2b-256 5218bd3c190d64b7c33d38f695cc4315ae23388e967cc2b2295a72b355dcae50

See more details on using hashes here.

File details

Details for the file xlock_py-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: xlock_py-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 6.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for xlock_py-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 17dea6675d6d826af5301f8ae218c3f6f4a8a5de4acffe413027efa0253cf1c5
MD5 55820b60fe025dfcea003d98fb499c6d
BLAKE2b-256 ac1bfb5c58705a3d1aafad3ef1712ef699757843a57475f11feaeb7d377dc622

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