Skip to content

round tripper for Go's http library to avoid getting a CloudFlare challenge on the first request

License

Notifications You must be signed in to change notification settings

DaRealFreak/cloudflare-bp-go

Repository files navigation

Go CloudFlare ByPass

tests Coverage Status GitHub Go Report Card

small round tripper to avoid triggering the "attention required" status of CloudFlare for HTTP requests. It'll add required/validated headers on requests and update the client TLS configuration to pass the CloudFlare validation.

This is (at least so far) NOT intended to solve challenges provided by CloudFlare, only to prevent CloudFlare from directly displaying you a challenge on the first request.

The bypass is tested on a schedule everyday at 3 AM in case CloudFlare updated their detection, so the badge is always displaying if the bypass still works.

Dependencies

  • eddycjy/fake-useragent - for setting a believable request user agent. CloudFlare is relatively forgiving with the user agents anyways but it'll add some variety for the long term.

Usage

You can add the round tripper as any other round tripper:

client := &http.Client{}
client.Transport = cloudflarebp.AddCloudFlareByPass(client.Transport)

small notice:
Using the http.DefaultTransport will currently still fail, nil or empty &http.Transport works. Didn't have the time to check what exactly is different causing the CloudFlare validation to fail though.

Development

Want to contribute? Great!
I'm always glad hearing about bugs or pull requests.

License

This project is licensed under the MIT License - see the LICENSE file for details

About

round tripper for Go's http library to avoid getting a CloudFlare challenge on the first request

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages