{"id":117640,"date":"2020-02-21T20:04:13","date_gmt":"2020-02-21T20:04:13","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/cloudflare-ip-blacklist\/"},"modified":"2026-02-17T09:25:51","modified_gmt":"2026-02-17T09:25:51","slug":"ip-blacklist-cloudflare","status":"publish","type":"plugin","link":"https:\/\/bal.wordpress.org\/plugins\/ip-blacklist-cloudflare\/","author":9374780,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.2.2","stable_tag":"1.2.2","tested":"6.9.4","requires":"","requires_php":"8.1","requires_plugins":null,"header_name":"IP Blacklist for Cloudflare","header_author":"Miller Media","header_description":"Blacklist IP addresses that attempt to login with a banned username.","assets_banners_color":"484848","last_updated":"2026-02-17 09:25:51","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/mattmiller.ai","rating":0,"author_block_rating":0,"active_installs":30,"downloads":1826,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"MillerMediaNow","date":"2020-02-22 02:13:22"},"1.0.1":{"tag":"1.0.1","author":"millermediadev","date":"2021-09-10 23:13:49"},"1.0.2":{"tag":"1.0.2","author":"MillerMediaNow","date":"2026-02-08 22:45:15"},"1.0.3":{"tag":"1.0.3","author":"MillerMediaNow","date":"2026-02-09 05:45:57"},"1.0.4":{"tag":"1.0.4","author":"MillerMediaNow","date":"2026-02-09 06:06:44"},"1.0.5":{"tag":"1.0.5","author":"MillerMediaNow","date":"2026-02-09 18:45:15"},"1.0.6":{"tag":"1.0.6","author":"MillerMediaNow","date":"2026-02-09 19:50:14"},"1.0.7":{"tag":"1.0.7","author":"MillerMediaNow","date":"2026-02-09 21:13:04"},"1.0.8":{"tag":"1.0.8","author":"MillerMediaNow","date":"2026-02-10 00:11:47"},"1.0.9":{"tag":"1.0.9","author":"MillerMediaNow","date":"2026-02-10 00:59:24"},"1.1.0":{"tag":"1.1.0","author":"MillerMediaNow","date":"2026-02-10 06:41:34"},"1.1.1":{"tag":"1.1.1","author":"MillerMediaNow","date":"2026-02-12 21:54:14"},"1.2.0":{"tag":"1.2.0","author":"MillerMediaNow","date":"2026-02-16 17:49:23"},"1.2.1":{"tag":"1.2.1","author":"MillerMediaNow","date":"2026-02-17 06:51:39"},"1.2.2":{"tag":"1.2.2","author":"MillerMediaNow","date":"2026-02-17 09:25:51"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.jpg":{"filename":"icon-128x128.jpg","revision":2248581,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.jpg":{"filename":"icon-256x256.jpg","revision":2248581,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.jpg":{"filename":"banner-1544x500.jpg","revision":2248573,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":2248573,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1","1.0.2","1.0.3","1.0.4","1.0.5","1.0.6","1.0.7","1.0.8","1.0.9","1.1.0","1.1.1","1.2.0","1.2.1","1.2.2"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":2248423,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":2248423,"resolution":"2","location":"assets","locale":""}},"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[602,1930,8588,435,600],"plugin_category":[38,43,54],"plugin_contributors":[160202,153151],"plugin_business_model":[],"class_list":["post-117640","plugin","type-plugin","status-publish","hentry","plugin_tags-login","plugin_tags-password","plugin_tags-passwords","plugin_tags-profile","plugin_tags-security","plugin_category-authentication","plugin_category-customization","plugin_category-security-and-spam-protection","plugin_contributors-mikemm01","plugin_contributors-millermedianow","plugin_committers-millermedianow"],"banners":{"banner":"https:\/\/ps.w.org\/ip-blacklist-cloudflare\/assets\/banner-772x250.jpg?rev=2248573","banner_2x":"https:\/\/ps.w.org\/ip-blacklist-cloudflare\/assets\/banner-1544x500.jpg?rev=2248573","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/ip-blacklist-cloudflare\/assets\/icon-128x128.jpg?rev=2248581","icon_2x":"https:\/\/ps.w.org\/ip-blacklist-cloudflare\/assets\/icon-256x256.jpg?rev=2248581","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/ip-blacklist-cloudflare\/assets\/screenshot-1.png?rev=2248423","caption":""},{"src":"https:\/\/ps.w.org\/ip-blacklist-cloudflare\/assets\/screenshot-2.png?rev=2248423","caption":""}],"raw_content":"<!--section=description-->\n<p>Cloudflare provides security and optimization services for websites all around the internet. WordPress sites are often attacked by bots or hackers and, while Cloudflare has preset firewall rules to help, it doesn\u2019t always filter out all malicious activity.<\/p>\n\n<p>Cloudflare IP Blacklist allows WordPress admins to add a list of prohibited usernames and if someone attempts to log in with one of these usernames, this users IP address is automatically added to the Cloudflare blacklist. By doing this, the next time this user attempts to load the site, they will be blocked by Cloudflare before their requests get to your site\u2019s server. Add an extra layer of security today to your site!<\/p>\n\n<p>** This plugin relies on the use of Cloudflare, a third-party service that increases security and performance for web sites and services across the internet. For more information, visit the Cloudflare website and their privacy policy. This plugin is not officially endorsed, built or maintained by the Cloudflare team; rather, we are a development company that uses their services every day! **<\/p>\n\n<h3>Localizations<\/h3>\n\n<p>This plugin is available in the following languages:<\/p>\n\n<ul>\n<li>Albanian (Shqip)<\/li>\n<li>Arabic (\u0627\u0644\u0639\u0631\u0628\u064a\u0629)<\/li>\n<li>Armenian (\u0540\u0561\u0575\u0565\u0580\u0565\u0576)<\/li>\n<li>Basque (Euskara)<\/li>\n<li>Bengali (\u09ac\u09be\u0982\u09b2\u09be)<\/li>\n<li>Bulgarian (\u0411\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438)<\/li>\n<li>Catalan (Catal\u00e0)<\/li>\n<li>Chinese Simplified (\u7b80\u4f53\u4e2d\u6587)<\/li>\n<li>Croatian (Hrvatski)<\/li>\n<li>Czech (\u010ce\u0161tina)<\/li>\n<li>Danish (Dansk)<\/li>\n<li>Dutch (Nederlands)<\/li>\n<li>Estonian (Eesti)<\/li>\n<li>Finnish (Suomi)<\/li>\n<li>French (Fran\u00e7ais)<\/li>\n<li>Galician (Galego)<\/li>\n<li>Georgian (\u10e5\u10d0\u10e0\u10d7\u10e3\u10da\u10d8)<\/li>\n<li>German (Deutsch)<\/li>\n<li>Greek (\u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac)<\/li>\n<li>Hebrew (\u05e2\u05d1\u05e8\u05d9\u05ea)<\/li>\n<li>Hindi (\u0939\u093f\u0928\u094d\u0926\u0940)<\/li>\n<li>Hungarian (Magyar)<\/li>\n<li>Indonesian (Bahasa Indonesia)<\/li>\n<li>Irish (Gaeilge)<\/li>\n<li>Italian (Italiano)<\/li>\n<li>Japanese (\u65e5\u672c\u8a9e)<\/li>\n<li>Korean (\ud55c\uad6d\uc5b4)<\/li>\n<li>Latvian (Latvie\u0161u)<\/li>\n<li>Lithuanian (Lietuvi\u0173)<\/li>\n<li>Macedonian (\u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0441\u043a\u0438)<\/li>\n<li>Norwegian (Norsk)<\/li>\n<li>Persian (\u0641\u0627\u0631\u0633\u06cc)<\/li>\n<li>Persian - Afghanistan (\u062f\u0631\u06cc)<\/li>\n<li>Polish (Polski)<\/li>\n<li>Portuguese - Brazil (Portugu\u00eas do Brasil)<\/li>\n<li>Portuguese - Portugal (Portugu\u00eas)<\/li>\n<li>Romanian (Rom\u00e2n\u0103)<\/li>\n<li>Russian (\u0420\u0443\u0441\u0441\u043a\u0438\u0439)<\/li>\n<li>Serbian (\u0421\u0440\u043f\u0441\u043a\u0438)<\/li>\n<li>Slovak (Sloven\u010dina)<\/li>\n<li>Slovenian (Sloven\u0161\u010dina)<\/li>\n<li>Spanish (Espa\u00f1ol)<\/li>\n<li>Swedish (Svenska)<\/li>\n<li>Tamil (\u0ba4\u0bae\u0bbf\u0bb4\u0bcd)<\/li>\n<li>Thai (\u0e44\u0e17\u0e22)<\/li>\n<li>Turkish (T\u00fcrk\u00e7e)<\/li>\n<li>Ukrainian (\u0423\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430)<\/li>\n<li>Urdu (\u0627\u0631\u062f\u0648)<\/li>\n<li>Vietnamese (Ti\u1ebfng Vi\u1ec7t)<\/li>\n<li>Welsh (Cymraeg)<\/li>\n<\/ul>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20do%20i%20set%20up%20my%20cloudflare%20api%20credentials%3F\"><h3>How do I set up my Cloudflare API credentials?<\/h3><\/dt>\n<dd><p>Go to Settings &gt; Cloudflare IP Blacklist in your WordPress admin. You can authenticate using either a scoped API Token (recommended) or your Global API Key (legacy). For API Tokens, create one in your Cloudflare dashboard with the \"Account &gt; Account Firewall Access Rules &gt; Edit\" permission.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20someone%20tries%20to%20log%20in%20with%20a%20banned%20username%3F\"><h3>What happens when someone tries to log in with a banned username?<\/h3><\/dt>\n<dd><p>Their IP address is automatically added to your Cloudflare firewall block list. On their next visit, Cloudflare blocks them before the request ever reaches your server, saving your server resources.<\/p><\/dd>\n<dt id=\"can%20i%20use%20an%20api%20token%20instead%20of%20the%20global%20api%20key%3F\"><h3>Can I use an API Token instead of the Global API Key?<\/h3><\/dt>\n<dd><p>Yes! As of version 1.0.5, scoped API Tokens are fully supported and recommended over the Global API Key. Create a token in your Cloudflare dashboard with the required firewall permissions.<\/p><\/dd>\n<dt id=\"what%20php%20and%20wordpress%20versions%20are%20supported%3F\"><h3>What PHP and WordPress versions are supported?<\/h3><\/dt>\n<dd><p>The plugin requires PHP 8.1 or higher and has been tested up to WordPress 6.9.1.<\/p><\/dd>\n<dt id=\"what%20languages%20are%20supported%3F\"><h3>What languages are supported?<\/h3><\/dt>\n<dd><p>The plugin is available in 30 languages with more being added regularly. We are working toward supporting 50 languages total!<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.2<\/h4>\n\n<ul>\n<li>Fixed text domain mismatch: updated all i18n calls to use correct slug <code>ip-blacklist-for-cloudflare<\/code><\/li>\n<li>Renamed translation files to match correct text domain<\/li>\n<li>Added ABSPATH checks to ReviewNotice.php and SiteSettingsView.php<\/li>\n<li>Fixed unescaped output in SiteSettingsView.php (printf calls now use wp_kses_post + numbered placeholders)<\/li>\n<li>Removed deprecated load_plugin_textdomain() call (WordPress handles this since 4.6)<\/li>\n<li>Replaced parse_url() with wp_parse_url() in Helpers.php<\/li>\n<li>Updated \"Tested up to\" to 6.9<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Added GPL license declaration to plugin header<\/li>\n<li>Updated Author URI<\/li>\n<li>Added direct file access protection to all PHP files<\/li>\n<li>Improved output escaping and input sanitization<\/li>\n<li>Removed non-production files from plugin directory<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Added translations for 50 languages<\/li>\n<li>Added POT translation template file<\/li>\n<li>Added opt-in data cleanup on plugin deletion<\/li>\n<li>Added Settings link on Plugins page<\/li>\n<li>Updated FAQ section<\/li>\n<li>Updated readme with complete language list<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Added translations for Russian, Polish, Dutch, Turkish, and Swedish<\/li>\n<li>Updated localization section in readme<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Added Chinese Simplified (zh_CN) translation<\/li>\n<\/ul>\n\n<h4>1.0.9<\/h4>\n\n<ul>\n<li>Added Japanese (ja) translation<\/li>\n<\/ul>\n\n<h4>1.0.8<\/h4>\n\n<ul>\n<li>Tested up to WordPress 6.9.1<\/li>\n<\/ul>\n\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>Added dismissible review prompt notice after 14 days of usage<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Added translations for Spanish, French, German, Portuguese (Brazilian), and Italian<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Added support for scoped API tokens as an alternative to Global API Key<\/li>\n<li>Added connected state UI with credential status bar and masked credential preview<\/li>\n<li>Added Disconnect action to easily switch authentication methods<\/li>\n<li>Added internationalization (i18n) support for all user-facing strings<\/li>\n<li>Labeled Global API Key as Legacy, recommending API Token for new installs<\/li>\n<li>Added required Cloudflare token permissions in API Token field description<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Added output escaping to settings page<\/li>\n<li>Scoped nonce verification to plugin settings page only<\/li>\n<li>Removed unnecessary error suppression on nonce verification<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Improved setup instructions for Cloudflare API credentials<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Compatibility updates for WordPress 6.9 and PHP 8.1+<\/li>\n<li>Fixed PHP 8.2 dynamic property deprecation warnings<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Initial public release<\/li>\n<\/ul>","raw_excerpt":"Blacklist IP addresses that attempt to login with a banned username through Cloudflare.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/117640","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=117640"}],"author":[{"embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/millermedianow"}],"wp:attachment":[{"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=117640"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=117640"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=117640"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=117640"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=117640"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=117640"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}