diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..91f51d6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.mitigation.php.swp diff --git a/mitigation.php b/mitigation.php new file mode 100644 index 0000000..d2085f5 --- /dev/null +++ b/mitigation.php @@ -0,0 +1,105 @@ +init(); + } + /** + * Initialize the plugin + */ + public function init() { + // Hook into WordPress init + add_action('init', [$this, 'on_init']); + add_action('wp_loaded', array($this, 'on_wp_loaded')); + } + + public function run($actions) + { + foreach ($actions as $action) { + $this->{$action}(); + } + } + + public function on_init() { + $actions = []; + $this->run($actions); + } + + public function on_wp_loaded() { + $this->setup_filters(); + $this->setup_actions(); + } + + public function setup_filters() { + $filters = [ + 'login_error_mask', + ]; + $this->run($filters); + } + + public function setup_actions() { + $actions = [ + 'mitigation_remove_footer_shake', + 'remove_wp_generator', + ]; + $this->run($actions); + } + + public function login_error_mask() + { + add_filter('login_errors', function($error) { + return 'La información proporcionada lamentablemente es incorrecta.'; + }); + } + + public function remove_wp_generator() + { + remove_action( 'wp_head', 'wp_generator' ); + } + + public function mitigation_remove_footer_shake() + { + remove_action('login_footer', 'wp_shake_js', 12); + } +} + +Mitigation::get_instance(); \ No newline at end of file