Skip to main content

Cloudflare proxy support for flask application

Project description

Cloudflare proxy support for flask application.

It gets client ip from cloudflare headers and can allow request from cloudflare ips only. If you are behind a proxy remember to use werkzeug.middleware.proxy_fix.ProxyFix, alternative you can override CloudflareRemote.get_remote() in order to fetch the correct client ip for example via HTTP_X_FORWARDED_FOR.

Quickstart

Install flask_cloudflare_remote using pip:

$ pip install Flask-CloudflareRemote

Example usage

import flask
from flask_cloudflare_remote import CloudflareRemote


app = Flask(__name__)
cf = CloudflareRemote()
cf.init_app(app)

Configuration

  1. CF_DOMAIN: (default: ‘www.cloudflare.com’)

  2. CF_REQ_TIMEOUT: (default: 10)

  3. CF_IPs: (default: None) list of allowed cloudflare ips

  4. CF_IP4_URI: (default: ‘/ips-v4’) ipv4 list uri

  5. CF_IP6_URI: (default: ‘/ips-v6’) ipv6 list uri

  6. CF_IPv6_ENABLED: (default: False) enable ipv6

  7. CF_STRICT_ACCESS: (default: True) return forbidden if remote ip is not in allowed list

  8. CF_OVERRIDE_REMOTE: (default: True) override flask REMOTE_ADDR from request

  9. CF_HDR_CLIENT_IP: (default: ‘CF-Connecting-IP’) header key used for client ip

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

Flask-CloudflareRemote-1.1.2.tar.gz (3.8 kB view hashes)

Uploaded Source

Supported by

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