Jump to content

Connexion à une base de données externe sans utiliser la classe Db


Recommended Posts

Bonjour à tous,

 

Voilà ma demande.

Je travaille actuellement sur un module qui permettra de se connecter à une base de données externe (celle d'un CRM, qui ne dispose pas d'API / Webservice malheureusement). Ce module sera en vente sur le store.

 

J'ai fait quelques recherches et il semblerait que la classe Db ne puisse fonctionner qu'avec les serveurs de base de données déclarés dans les fichiers de config (je pense notamment au serveur esclave).

 

S'agissant d'un module devant être à la portée de n'importe quel utilisateur, je ne peux pas me permettre de dire "Connectez vous au FTP et éditez un fichier de config à la main".

 

La solution serait donc d'utiliser les outils natifs de PHP pour communiquer avec une base de données (PDO, mysqli, mysql).

 

Le problème c'est que j'ai peur que mon module soit rejeté par l'équipe de validation technique pour des raisons de sécurité et/ou de non-respect des standards.

 

Est ce que certains d'entre vous auraient une expérience avec ce type de problématique ?

 

Merci d'avance pour vos réponses

Link to comment
Share on other sites

Qu'est ce qui vous empêche dans la configuration de votre module de rentrer les informations nécessaire pour se connecter à la base de données externe ?

Ensuite, vous n'êtes pas obligé d'utiliser les fonctions Prestashop de connexion à cette base de données, utilisez votre propre classe PDO^^

Link to comment
Share on other sites

@Eolia : j'ai dû mal m'expliquer.

Je ne posais pas la question du "Comment faire techniquement", ma crainte c'est de bosser des heures pour que finalement le module soit rejeté par la team de validation technique au motif que pour se connecter à une base de données dans Prestashop il faudrait impérativement utiliser la classe Db.

Link to comment
Share on other sites

A ma connaissance Addons n'a jamais interdit ça ?

Sont interdites les fonctions de cryptage base64, les liens vers votre shop, mais pour le reste vous utilisez les fonctions que vous voulez.

La connexion à une bdd externe n'est pas une faille de sécurité.

 

Après, vous pouvez utiliser un appel vers un web service sur l'autre serveur qui, lui, effectuera l'appel à la base de données.

 

Perso je ne suis pas pour ouvrir les accès bdd à l'extérieur (risque d'intrusion supplémentaire), surtout que sur les mutus, c'est souvent interdit...

Link to comment
Share on other sites

A ma connaissance Addons n'a jamais interdit ça ?

Sont interdites les fonctions de cryptage base64, les liens vers votre shop, mais pour le reste vous utilisez les fonctions que vous voulez.

La connexion à une bdd externe n'est pas une faille de sécurité.

 

Après, vous pouvez utiliser un appel vers un web service sur l'autre serveur qui, lui, effectuera l'appel à la base de données.

 

Perso je ne suis pas pour ouvrir les accès bdd à l'extérieur (risque d'intrusion supplémentaire), surtout que sur les mutus, c'est souvent interdit...

 

Le validateur de module est quand même un peu plus strict que ça. 

Je ne me souviens plus de l'exemple précis mais j'avais eu un rejet sur une fonction très basique de PHP (strlen(), empty(), substr(),...) qu'il ne fallait pas utiliser parce qu'elle avait une méthode équivalente dans la classe Tools.

Quand tu connais le temps d'attente que demande la validation d'un module et que la moindre erreur ou le moindre oubli te "ramène au début de la queue", tu prends tes précautions :)

 

Et comme tu le dis l'accès à une base de données externe ajoute un risque d'intrusion.

Une raison supplémentaire pour que Prestashop rejette le module.

 

Et malheureusement, comme indiqué dans mon 1er message, pas de webservice.

 

En tout cas merci pour ton retour Eolia, j'attendais l'avis d'un dev expérimenté sur le sujet, c'est ce que tu m'as donné :) .

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...