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 ?> Sign in... {Admin Module}