{"id":228712,"date":"2025-04-16T02:36:02","date_gmt":"2025-04-16T02:36:02","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/invalid-traffic-blocker\/"},"modified":"2025-05-31T00:00:50","modified_gmt":"2025-05-31T00:00:50","slug":"invalid-traffic-blocker","status":"publish","type":"plugin","link":"https:\/\/th.wordpress.org\/plugins\/invalid-traffic-blocker\/","author":18214489,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.3","stable_tag":"1.3","tested":"6.8.5","requires":"4.5","requires_php":"7.2","requires_plugins":null,"header_name":"Invalid Traffic Blocker","header_author":"Michael Akinwumi","header_description":"Blocks unwanted traffic using the IPHub.info API to protect AdSense publishers from invalid traffic. This is not an official plugin for IPHub.info.","assets_banners_color":"c7a792","last_updated":"2025-05-31 00:00:50","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/invalid-traffic-blocker","header_author_uri":"https:\/\/michaelakinwumi.com\/","rating":5,"author_block_rating":0,"active_installs":40,"downloads":714,"num_ratings":1,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.2":{"tag":"1.2","author":"maocular","date":"2025-04-16 02:35:51"},"1.3":{"tag":"1.3","author":"maocular","date":"2025-05-31 00:00:50"}},"upgrade_notice":{"1.3":"<p>This update adds an option to allow known search engine crawlers and custom User-Agent patterns to bypass the IP check, and ensures full sanitization of the User-Agent header to meet WordPress security requirements.<\/p>","1.2":"<p>This update includes improved API testing with admin IP detection, styled response messages, and an automatic whitelist option.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3274049,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3274049,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3274049,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3274049,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.2","1.3"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3274049,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3274049,"resolution":"2","location":"assets","locale":""}},"screenshots":{"1":"Admin settings page with API key, blocking mode options, and whitelist functionality.","2":"API connectivity test output showing a green info box on success.","3":"Warning message for blocked users."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[148,2707,240884,1493,48992],"plugin_category":[35],"plugin_contributors":[240885],"plugin_business_model":[],"class_list":["post-228712","plugin","type-plugin","status-publish","hentry","plugin_tags-adsense","plugin_tags-blocker","plugin_tags-invalid-traffic","plugin_tags-ip","plugin_tags-vpn","plugin_category-advertising","plugin_contributors-maocular","plugin_committers-maocular"],"banners":{"banner":"https:\/\/ps.w.org\/invalid-traffic-blocker\/assets\/banner-772x250.png?rev=3274049","banner_2x":"https:\/\/ps.w.org\/invalid-traffic-blocker\/assets\/banner-1544x500.png?rev=3274049","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/invalid-traffic-blocker\/assets\/icon-128x128.png?rev=3274049","icon_2x":"https:\/\/ps.w.org\/invalid-traffic-blocker\/assets\/icon-256x256.png?rev=3274049","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/invalid-traffic-blocker\/assets\/screenshot-1.png?rev=3274049","caption":"Admin settings page with API key, blocking mode options, and whitelist functionality."},{"src":"https:\/\/ps.w.org\/invalid-traffic-blocker\/assets\/screenshot-2.png?rev=3274049","caption":"API connectivity test output showing a green info box on success."}],"raw_content":"<!--section=description-->\n<p>Invalid Traffic Blocker is a WordPress plugin that uses the IPHub.info API to detect and block unwanted traffic such as bots, VPNs, and suspicious IP addresses. This helps AdSense publishers and website owners ensure that only valid traffic is served. This is not an official plugin for IPHub.info.<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin connects to the IPHub.info API to validate IP addresses and determine whether they are suspicious, likely belonging to bots, VPNs, or invalid traffic.\nData transmitted:\n  \u2022 The visitor's IP address is sent to IPHub.info each time a check is performed.\nPurpose:\n  \u2022 To determine the nature of the IP (e.g., non\u2011residential, residential suspicious) and decide whether to block access.\nTerms and Privacy:\n  \u2022 IPHub.info Terms of Service: https:\/\/iphub.info\/legal\/tos\n  \u2022 IPHub.info Privacy Policy: https:\/\/iphub.info\/legal\/privacy<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to the <code>\/wp-content\/plugins\/invalid-traffic-blocker<\/code> directory or install the plugin through the WordPress plugins screen.<\/li>\n<li>Activate the plugin through the 'Plugins' screen in WordPress.<\/li>\n<li>Navigate to <code>Settings &gt; Invalid Traffic Blocker<\/code> in your WordPress admin dashboard.<\/li>\n<li>Enter your IPHub API key, choose your desired blocking mode, and add any trusted IP addresses to the whitelist.<\/li>\n<li>Save your settings and use the \"Test API Connectivity\" and \"Whitelist My IP\" buttons as needed.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id='what%20is%20invalid%20traffic%20blocker%3F'><h3>What is Invalid Traffic Blocker?<\/h3><\/dt>\n<dd><p>Invalid Traffic Blocker is a WordPress plugin that uses the IPHub.info API to detect and block unwanted traffic, including bots, VPNs, and suspicious IP addresses. It helps ensure that only valid traffic reaches your website.<\/p><\/dd>\n<dt id='how%20do%20i%20configure%20the%20plugin%3F'><h3>How do I configure the plugin?<\/h3><\/dt>\n<dd><p>After activating the plugin, go to <code>Settings &gt; Invalid Traffic Blocker<\/code>. Here you can enter your API key, select a blocking mode, and manage your IP whitelist.<\/p><\/dd>\n<dt id='what%20if%20my%20api%20key%20is%20missing%20or%20invalid%3F'><h3>What if my API key is missing or invalid?<\/h3><\/dt>\n<dd><p>If the API key is missing or incorrect, the plugin will not perform any blocking. Make sure to obtain a valid API key from <a href=\"https:\/\/iphub.info\/register\">IPHub.info<\/a>.<\/p><\/dd>\n<dt id='can%20i%20update%20the%20whitelist%20later%3F'><h3>Can I update the whitelist later?<\/h3><\/dt>\n<dd><p>Yes, you can update the list of whitelisted IP addresses at any time from the settings page.<\/p><\/dd>\n<dt id='how%20do%20i%20whitelist%20my%20ip%3F'><h3>How do I whitelist my IP?<\/h3><\/dt>\n<dd><p>Click the \"Whitelist My IP\" button on the settings page to add your current IP address to the whitelist.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.3<\/h4>\n\n<ul>\n<li>Added \u201cAllow Known Crawlers\u201d setting to automatically bypass IP checks for common search engine bots (Googlebot, Bingbot, Slurp, DuckDuckBot, Baiduspider, YandexBot).<\/li>\n<li>Introduced \u201cAdditional Crawler Patterns\u201d textarea so admins can specify extra User-Agent regexes to whitelist.<\/li>\n<li>Updated <code>invatrbl_check_visitor_ip()<\/code> to use <code>filter_input()<\/code> and <code>sanitize_text_field()<\/code> when reading <code>$_SERVER['HTTP_USER_AGENT']<\/code> to comply with WP security standards.<\/li>\n<li>Ensured User-Agent checks are fully sanitized to eliminate any <code>InputNotSanitized<\/code> warnings during plugin review.<\/li>\n<li>Streamlined front-end blocking logic so known crawlers (built-in or custom) are skipped before performing IPHub API lookups.<\/li>\n<li>Minor code refactoring and cleanup to align with WordPress Plugin Coding Standards.<\/li>\n<\/ul>\n\n<h4>1.2<\/h4>\n\n<ul>\n<li>Use admin\u2019s current IP for API testing instead of a default.<\/li>\n<li>Fancy info boxes for API test responses (green for success, red for errors).<\/li>\n<li>\"Whitelist My IP\" button to add the admin's current IP to the whitelist automatically.<\/li>\n<\/ul>\n\n<h4>1.1<\/h4>\n\n<ul>\n<li>added whitelist functionality and basic API connectivity testing.<\/li>\n<li>introduced multiple blocking modes.<\/li>\n<\/ul>\n\n<h4>1.0<\/h4>\n\n<ul>\n<li>Initial release with core functionality:\n\n<ul>\n<li>Integration with IPHub.info API.<\/li>\n<li>Multiple blocking modes: Safe, Strict, and Custom.<\/li>\n<li>Persistent warning message for blocked users.<\/li>\n<li>Basic security measures and caching implementation.<\/li>\n<\/ul><\/li>\n<\/ul>","raw_excerpt":"Protect your site from invalid traffic by blocking suspicious IPs using the IPHub.info API.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/th.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/228712","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/th.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/th.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/th.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=228712"}],"author":[{"embeddable":true,"href":"https:\/\/th.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/maocular"}],"wp:attachment":[{"href":"https:\/\/th.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=228712"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/th.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=228712"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/th.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=228712"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/th.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=228712"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/th.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=228712"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/th.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=228712"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}