89 lines
2.7 KiB
PHP
89 lines
2.7 KiB
PHP
<?php
|
|
/*
|
|
* Plugin Name: Admin Useraccount Security
|
|
* Description: Met en place des règles de base afin de protéger les comptes administrateurs.
|
|
* Version: 1.3
|
|
* Author: Yann Gonidec
|
|
* Author URI:
|
|
*/
|
|
|
|
/** Removes the ability for non admin users to change/reset their passwords. */
|
|
class Password_Reset_Removed
|
|
{
|
|
|
|
function __construct()
|
|
{
|
|
add_filter( 'show_password_fields', array( $this, 'disable' ) );
|
|
add_filter( 'allow_password_reset', array( $this, 'disable' ) );
|
|
add_filter( 'gettext', array( $this, 'remove' ) );
|
|
}
|
|
|
|
function disable()
|
|
{
|
|
if ( is_admin() ) {
|
|
$userdata = wp_get_current_user();
|
|
$user = new WP_User($userdata->ID);
|
|
if ( !empty( $user->roles ) && is_array( $user->roles ) && $user->roles[0] == 'administrator' )
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
function remove($text)
|
|
{
|
|
return str_replace( array('Lost your password?', 'Lost your password'), '', trim($text, '?') );
|
|
}
|
|
}
|
|
|
|
$pass_reset_removed = new Password_Reset_Removed();
|
|
|
|
/** Supprime la class comment-author dans les commentaires pour masquer le login de l'administrateur */
|
|
function remove_comment_author_class( $classes ) {
|
|
foreach( $classes as $key => $class ) {
|
|
if(strstr($class, "comment-author-")) {
|
|
unset( $classes[$key]);
|
|
}
|
|
}
|
|
return $classes;
|
|
}
|
|
add_filter( 'comment_class' , 'remove_comment_author_class');
|
|
|
|
/** Renvoi un message d'erreur global au niveau du login de l'admin afin de ne pas savoir si c'est le login ou le pwd qui est faux */
|
|
add_filter('login_errors', function($a) {
|
|
return 'Login ou mot de passe incorrect';
|
|
});
|
|
|
|
/** Supprime la balise « generator » du flux rss.*/
|
|
add_filter('get_the_generator_rss2', '__return_false');
|
|
add_filter('get_the_generator_atom', '__return_false');
|
|
|
|
// new 16.11.2017
|
|
function remove_wp_version_rss() {
|
|
return'';
|
|
}
|
|
add_filter('the_generator','remove_wp_version_rss');
|
|
|
|
/** new 31.01.2019 - Désactivation des feeds RSS */
|
|
function wpb_disable_feed() {
|
|
wp_die( __('Aucun flux disponible <a href="'. get_bloginfo('url') .'">retour à l\'accueil</a>.'), "Pas de flux RSS", array('response' => 200) );
|
|
}
|
|
add_action('do_feed', 'wpb_disable_feed', 1);
|
|
add_action('do_feed_rdf', 'wpb_disable_feed', 1);
|
|
add_action('do_feed_rss', 'wpb_disable_feed', 1);
|
|
add_action('do_feed_rss2', 'wpb_disable_feed', 1);
|
|
add_action('do_feed_atom', 'wpb_disable_feed', 1);
|
|
add_action('do_feed_rss2_comments', 'wpb_disable_feed', 1);
|
|
add_action('do_feed_atom_comments', 'wpb_disable_feed', 1);
|
|
|
|
/** new 31.01.2019 - Supprime les liens RSS dans le header des pages */
|
|
add_action( 'wp_head', 'wpse33072_wp_head', 1 );
|
|
function wpse33072_wp_head(){
|
|
remove_action( 'wp_head', 'feed_links_extra', 3 );
|
|
remove_action( 'wp_head', 'feed_links', 2 );
|
|
}
|
|
|
|
/** Masque la version de Wordpress dans les sources du site */
|
|
remove_action('wp_head', 'wp_generator');
|
|
|
|
|
|
?>
|