Linux cesa-www-main 6.1.0-49-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.174-1 (2026-05-26) x86_64
Apache/2.4.68 (Debian)
Server IP : 10.218.0.2 & Your IP : 216.73.216.28
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
var /
www /
cesa.co.za /
wp-content /
plugins /
akismet /
Delete
Unzip
Name
Size
Permission
Date
Action
_inc
[ DIR ]
drwxr-sr-x
2026-08-20 14:06
abilities
[ DIR ]
drwxr-sr-x
2026-08-20 14:06
views
[ DIR ]
drwxr-sr-x
2026-08-20 14:06
.htaccess
796
B
-rw-r--r--
2026-08-20 14:06
LICENSE.txt
17.67
KB
-rw-r--r--
2026-08-20 14:06
akismet.php
3.31
KB
-rw-r--r--
2026-08-20 14:06
changelog.txt
22.83
KB
-rw-r--r--
2026-08-20 14:06
class-akismet-abilities.php
2.05
KB
-rw-r--r--
2026-08-20 14:06
class-akismet-compatible-plugins.php
7.83
KB
-rw-r--r--
2026-08-20 14:06
class-akismet-connector.php
4.47
KB
-rw-r--r--
2026-08-20 14:06
class.akismet-admin.php
65.11
KB
-rw-r--r--
2026-08-20 14:06
class.akismet-cli.php
4.89
KB
-rw-r--r--
2026-08-20 14:06
class.akismet-rest-api.php
19.94
KB
-rw-r--r--
2026-08-20 14:06
class.akismet-widget.php
4.88
KB
-rw-r--r--
2026-08-20 14:06
class.akismet.php
87.83
KB
-rw-r--r--
2026-08-20 14:06
index.php
58
B
-rw-r--r--
2026-08-20 14:06
readme.txt
6.8
KB
-rw-r--r--
2026-08-20 14:06
wrapper.php
6.28
KB
-rw-r--r--
2026-08-20 14:06
Save
Rename
<?php /** * Akismet Connector integration. * * @package Akismet */ declare( strict_types = 1 ); /** * Integrates Akismet with the WordPress Connectors framework, * handling API key validation and connection status reporting. */ class Akismet_Connector { /** * Register hooks for the WordPress Connectors integration. */ public static function init() { add_action( 'wp_connectors_init', array( 'Akismet_Connector', 'register_connector' ) ); // Priority 9 so we validate the real key before core's connector masking filter at priority 10. add_filter( 'rest_post_dispatch', array( 'Akismet_Connector', 'validate_api_key' ), 9, 3 ); add_filter( 'script_module_data_options-connectors-wp-admin', array( 'Akismet_Connector', 'set_connected_status' ), 11 ); // Invalidate the connector key status cache on any key change. foreach ( array( 'add', 'update', 'delete' ) as $action ) { add_action( "{$action}_option_wordpress_api_key", array( 'Akismet_Connector', 'invalidate_key_status_cache' ) ); } } /** * Validate the Akismet API key when saved via the connectors REST settings endpoint. * If the key is invalid, revert it to an empty string. * * @param WP_REST_Response $response The response object. * @param WP_REST_Server $server The server instance. * @param WP_REST_Request $request The request object. * @return WP_REST_Response */ public static function validate_api_key( $response, $server, $request ) { if ( '/wp/v2/settings' !== $request->get_route() ) { return $response; } if ( 'POST' !== $request->get_method() && 'PUT' !== $request->get_method() ) { return $response; } $data = $response->get_data(); if ( ! is_array( $data ) || ! array_key_exists( 'wordpress_api_key', $data ) ) { return $response; } $key = $data['wordpress_api_key']; if ( ! is_string( $key ) || '' === $key ) { return $response; } if ( Akismet::KEY_STATUS_INVALID === Akismet::verify_key( $key ) ) { update_option( 'wordpress_api_key', '' ); $data['wordpress_api_key'] = ''; $response->set_data( $data ); } return $response; } /** * Set the isConnected status for the Akismet connector based on actual key validity. * * @param array $data Script module data. * @return array */ public static function set_connected_status( $data ) { if ( ! isset( $data['connectors']['akismet']['authentication'] ) ) { return $data; } $key = Akismet::get_api_key(); if ( empty( $key ) ) { $data['connectors']['akismet']['authentication']['isConnected'] = false; return $data; } $is_connected = get_transient( 'akismet_connector_key_status' ); if ( false === $is_connected ) { $is_connected = Akismet::verify_key( $key ); // Don't cache failures (e.g. network timeouts) so we retry on the next page load. if ( Akismet::KEY_STATUS_FAILED !== $is_connected ) { set_transient( 'akismet_connector_key_status', $is_connected, DAY_IN_SECONDS ); } } $data['connectors']['akismet']['authentication']['isConnected'] = ( Akismet::KEY_STATUS_VALID === $is_connected ); return $data; } /** * Clear the connector key status cache so it doesn't serve stale data. */ public static function invalidate_key_status_cache() { delete_transient( 'akismet_connector_key_status' ); } /** * Register the Akismet connector with an is_active callback so the * connectors page can detect Akismet as active when installed as a mu-plugin. * * We re-register the full connector rather than patching the core one * so that Akismet still has a connector even if core removes its own. * * @see https://github.com/WordPress/gutenberg/pull/76994 * * @param WP_Connector_Registry $registry Connector registry instance. */ public static function register_connector( $registry ) { if ( method_exists( $registry, 'is_registered' ) && $registry->is_registered( 'akismet' ) ) { $registry->unregister( 'akismet' ); } $registry->register( 'akismet', array( 'name' => __( 'Akismet Anti-spam', 'akismet' ), 'description' => __( 'Protect your site from spam.', 'akismet' ), 'type' => 'spam_filtering', 'plugin' => array( 'file' => 'akismet/akismet.php', 'is_active' => function () { return defined( 'AKISMET_VERSION' ); }, ), 'authentication' => array( 'method' => 'api_key', 'credentials_url' => 'https://akismet.com/get/', 'setting_name' => 'wordpress_api_key', 'constant_name' => 'WPCOM_API_KEY', ), ) ); } }