Jump to content

Changer l'auto_increment des catégories suite à une attaque


Recommended Posts

Bonjour,

Un de mes clients utilise Prestashop et a été piraté il y a quelques mois, avec pour conséquence la création d'un nombre impressionnant de catégories. Il avait alors pu trouver une solution technique pour supprimer ces catégories résiduelles, cependant l'auto-increment de la table ps_category est resté à plus de 2500000.

Entre temps il a créé une trentaine de catégories, qui ont par conséquent un très grand ID. Nous aimerions trouver une solution propre pour redescendre ces IDs à partir de celui qui aurait dû être le bon (150).

La raison, c'est que cela pose conflit avec un outil que nous réalisons qui se base sur les URLs de son site. Son format d'URL rewriting est le même pour les produits et les catégories ( /:id-titre.html ). Avant, nous pouvions déterminer qu'une URL était un produit si l'ID extrait était supérieur à 20.000.000 car ses premiers produits sont de cet ordre de valeur, et les catégories étaient inférieur à 150. Suite à ce piratage, cela n'est plus possible car une trentaine de catégories ont un ID qui pourrait être aussi un ID de produit.

Nous ne voulons pas changer les URLs rewriting.

J'ai tenté un ALTER TABLE pour redescendre l'AUTO_INCREMENT à 150, mais sans succès, sûrement dû au fait qu'il y ait toujours cette trentaine d'id_category avec un ID au-dessus de 150 dans la table.

Nous envisageons de supprimer toutes ces catégories, puis de retenter l'ALTER TABLE pour redescendre l'AUTO_INCREMENT à 150, et enfin recréer les catégories et réassigner les produits.

1) Pensez-vous que l'ALTER TABLE pour rechanger l'auto-increment à 150 fonctionnera bien cette fois si cette table ne contient plus d'id_category >= 150 ?

2) Voyez-vous une meilleure solution ?

Merci d'avance pour vos conseils :-)

Link to comment
Share on other sites

Commencer par changer tous les id_category (ps_category, ps_category_shop, ps_category_lang, ps_category_product) vous pourrez ensuite ajuster l'auto-incrément

Attention vous devrez surement mettre en place des redirections 301 pour éviter de perdre le flux de référencement sur les catégories actuellement indexées/référencées

Link to comment
Share on other sites

Bonjour Doekia,

Merci pour votre retour, cependant avec les modules installé, la DB contient 872 tables, j'ai bien peur qu'il y ait bien plus de tables qui contiennent cet id_category, sous ce libellé ou un autre d'ailleurs, ça me semble donc assez risqué de changer les valeurs des id_category.

Néanmoins, si vous pensez qu'en supprimant les id_category > 150, que je pourrais baisser l'auto-increment à 150 via un ALTER TABLE, alors nous allons tenter cette option, puis recreer les 30 catégories concernées.

Merci

Link to comment
Share on other sites

Je vous ai donné toutes les tables concernées par le coeur, il peut y avoir l'id_category dans des module de menu mais il suffira de recréer les entrées ensuite. Supprimer ou changer les valeurs représente exactement le même scénario coté code.

Link to comment
Share on other sites

Merci pour votre retour, en cherchant une de ces valeurs d'id_category très élevée, j'ai pu trouver beaucoup plus de tables où cet ID apparaît :

 
    ps_canonicalseo_categories_urls
    ps_category
    ps_category_group
    ps_category_lang
    ps_category_product
    ps_category_shop
    ps_creativepage
    ps_ganalytics_data
    ps_log
    ps_pm_advancedsearch_category
    ps_pm_advancedsearch_criterion_10_link
    ps_pm_advancedsearch_criterion_11_link
    ps_pm_advancedsearch_criterion_12_link
    ps_pm_advancedsearch_criterion_13_link
    ps_pm_advancedsearch_criterion_16_link
    ps_pm_advancedsearch_criterion_17_link
    ps_pm_advancedsearch_criterion_18_link
    ps_pm_advancedsearch_criterion_19_link
    ps_pm_advancedsearch_criterion_1_link
    ps_pm_advancedsearch_criterion_3_link
    ps_pm_advancedsearch_criterion_4_link
    ps_pm_advancedsearch_criterion_5_link
    ps_pm_advancedsearch_criterion_6_link
    ps_pm_advancedsearch_criterion_7_link
    ps_pm_advancedsearch_criterion_8_link
    ps_pm_advancedsearch_criterion_9_link
    ps_pm_advancedsearch_products_cat

Et cela ne concerne que la valeur de l'id que j'ai choisi, il faudrait que je fasse cette recherche pour les 30 id_category concernés, puis en effet que je descende leurs valeurs, puis de gérer les redirections 301.

Merci en tout cas pour votre aide, et bonne journée

Link to comment
Share on other sites

les champs id_category dans pm_advancedsearch seront mis à jour en réindexant votre module advanced_search

on se moque de ps_log sans conséquence

creativepage c'est comme le menu de toute manière vous devrez controler toutes vos entrées

ganalitics_data sans conséquences

canonicalseo_categories_urls a corriger en controllant le module concerné

 

j'avais en effet raté dans mes mentions category_group

 

  • Like 1
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...