Jump to content

Ajax pour la page de configuration et sécurité BackOffice


TrogloGeek

Recommended Posts

Bonjour,

désolé pour le titre qui n'est peut être pas très explicite...
Je m'explique :
Je suis actuellement sur la création d'un module d'upselling adapté à un projet particulier, et plus particulièrement sur la partie back office.
Hors je compte utiliser de l'ajax pour des commandes assez sensibles (suppression, edition, création...).
Voulant faire les choses dans les règles, je souhaite sécuriser le fichier de réponse ajax dans mon module, c'est à dire qu'il puisse vérifier que la personne qui appelle la page soit bien loggée sur le back office.

En regardant un peu ce qui est fourni avec prestashop, je constate que le fichier ajax.php du backoffice fait appel à init.php.
Je ferais bien de même, mais voulant faire un module réutilisable, je m'aperçois que je ne sais pas accéder aux fichiers d'admin depuis mon module, étant donné que chacun est censé renommer le dossier admin selon son bon vouloir.
j'ai regardé comment faisait le module "productscomments" mais apparement son pont ajax n'est pas sécurisé.

Quelqu'un aurait-il une piste à m'indiquer ?
Un grand merci d'avance.

Link to comment
Share on other sites

Bon, j'ai trouvé une solution, mais si quelqu'un a plus propre, je suis preneur :

dans le getContent() du module :

   public function getContent() {
       global $cookie;

       /* Initialisation du Cookie "Back Office Module" pour Ajax */
       $BOMdata = $cookie->getFamily('');
       if (isset($BOMdata['date_add'])) unset($BOMdata['date_add']);
       $BOMCookie = new Cookie('psBOM', 'modules/' . $this->name, time() + 300);
       foreach ($BOMdata as $k => $v) {
           $BOMCookie->$k = $v;
       }



et dans le (ou les) fichier de réponse Ajax dans le dossier de module :

<?php

require '../../config/config.inc.php';

$cookie = new Cookie('psBOM', 'modules/cnmupselling', time() + 300);
if (!$cookie->isLoggedBack()) {
   header("HTTP/1.1 401 Unauthorized" );
   exit;
}



Défaut de cette méthode :
-> En cas de déconnexion sur le Back Office le Cookie BOM n'est pas supprimé -> on a toujours accès au pont ajax, d'où la durée de vie de 5 minutes pour le cookie.
-> 5 minutes d'inactivité sur la page désactivent le pont si l'on ne prévoit pas de requête régulière en Ajax pour la maintenue du Cookie.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...