0000029: Sauvegarde automatique/manuelle des tables du catalogue
//
// autorisation spéciale via le hash MD5 de l'user agent modifié via wget.
/*
// Commande invalide sur un osCommerce où il y a un captcha:
wget --user-agent=pnsgej12 -O /dev/null 'http://adresse_ip/linder/v1/admin/backup.php?action=backup_catalog'
// Commande valide sur un osCommerce où il y a un captcha:
wget --post-data 'backupAction=backup_catalog' --user-agent=pnsgej12 -O /dev/null 'http://adresse_ip/linder/v1/admin/signin.php'
--post-data = OPTION wget pour envoyer des données par la méthode POST plutôt que de passer par la méthode GET.
(dans ce cas là: on envoie une variable POST nommée: backupAction) valeur : backup_catalog
(si l'on veut envoyer d'autres variables POST nommée: il faudra utiliser le séparateur & au lieu de ?) exemple: 'backupAction=backup_catalog&nouvelle_var=valeur'
-O /dev/null = OPTION wget pour envoyer le fichier dans la poubelle au lieu de l'enregistrer (on veut juste se connecter au site, pas enregistrer la page).
*/
} else if ( md5($_SERVER['HTTP_USER_AGENT']) == md5('pnsgej12') ) {
// on déclare la session indiquant que l'on a eu l'autorisation administrative.
$_SESSION['admin_signed_in'] = true;
//$test = 'action:' . $_POST['backupAction'] . '
';
//die ($test);
/*
* en mode TEST ( si la constante VD_SERVER_MODE dans le fichier admin/includes/configure.php est égale à "TEST", alors suffira:
*
* header('Location: index.php');
*
* SAUF que si ce n'est pas en mode test (n'importe quelle autre valeur à la constante VD_SERVER_MODE), alors, qu'un paramètre osCAdminID est requis dans la barre d'adresse.
* étant donné que cette variable $_GET[] n'est pas trouvable à l'avance, ça ne fera qu'échouer lors de l'appel par wget.
*/
// Ainsi, si le VD_SERVER_MODE est à autre chose que "TEST", on en conclue que le site auquel on se connecte est la version du site en production et non en développement.
// Dans ce cas, on redirige immédiatement vers l'action appropriée c'est à dire: header('Location: backup.php?action=backup_catalog');
/*
* Sauf que, nous ne souhaitons utiliser qu'un seul mot de passe comme user-agent.. Ainsi, on doit créér nous même (de la même façon que osCommerce) la chaîne osCAdminID.
*
*/
$fake_number = '070367'; // on créé un code fictif
$fake_osCAdminID = md5($fake_number);
// Comme l'on veux avoir UNE seule clause IF, et non deux, on va récupérer la valeur de $_POST['backupAction'] qui a été envoyé.
// elle seule décidera de l'action à lancer, une seule clause IF, un seul HTTP-USER-AGENT = moins de code.
// Par sécurité, on va décider de détruire toutes entités HTML passées en références dans $_POST['backupAction']
header('Location: backup.php?action='.htmlentities( $_POST['backupAction'] ).'&osCAdminID='.$fake_osCAdminID);
}
// <- 0000029: Sauvegarde automatique/manuelle des tables du catalogue
?>