ldc-sbv/wp-content/plugins/ldc-web-admin-secure/ldc-web-admin-secure.php
2021-09-21 15:01:08 +02:00

66 lines
2.2 KiB
PHP

<?php
/*
* Plugin Name: LDC Web Admin Secure
* Description: Sécurisation des BO via LDC Web
* Version: 1.0
* Author: Vincent BRIDIER
* Author URI: mailto:vincent.bridier@ldc.fr
*/
add_filter( 'cron_schedules', function ( $schedules ) {
$schedules['everyday'] = array(
'interval' => DAY_IN_SECONDS,
'display' => __( 'Everyday' )
);
return $schedules;
} );
function cron_activate_lwas() {
if (!wp_next_scheduled ( 'update_admin_htaccess_lwas' )) {
wp_schedule_event(strtotime('4:30:00'), 'everyday', 'update_admin_htaccess_lwas');
}
}
register_activation_hook(__FILE__, 'cron_activate_lwas');
// ---- unschedule event upon plugin deactivation
function cron_deactivate_lwas() {
$timestamp = wp_next_scheduled ('update_admin_htaccess_lwas');
wp_unschedule_event ($timestamp, 'update_admin_htaccess_lwas');
}
register_deactivation_hook (__FILE__, 'cron_deactivate_lwas');
function UpdateAdminHtaccess_lwas(){
// Get by cURL
$url = 'https://ldc-web.ldc.fr/api/ldc-networks?token=CE8S52Qq7stf5k8frF4T';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);
$ips = json_decode($result);
$filename = ABSPATH . 'wp-admin/.htaccess';
foreach ($ips as $k => $ip) {
if ($k === 0) {
file_put_contents($filename, "SetEnvIF X-Forwarded-For '$ip' AllowIP\n");
}else{
file_put_contents($filename, "SetEnvIF X-Forwarded-For '$ip' AllowIP\n", FILE_APPEND);
}
}
file_put_contents($filename, "<RequireAny>\n", FILE_APPEND);
file_put_contents($filename, "Require env AllowIP\n", FILE_APPEND);
file_put_contents($filename, "</RequireAny>\n", FILE_APPEND);
file_put_contents($filename, "<Files 'admin-ajax.php'>\n", FILE_APPEND);
file_put_contents($filename, "Require all granted\n", FILE_APPEND);
file_put_contents($filename, "</Files>\n", FILE_APPEND);
if (!wp_next_scheduled ( 'update_admin_htaccess_lwas' )) {
wp_schedule_event(time(), 'everyday', 'update_admin_htaccess_lwas');
}
}
add_action ('update_admin_htaccess_lwas', 'UpdateAdminHtaccess_lwas');