web-dev-qa-db-fra.com

Est-ce que la désinstallation du plugin remet toujours WordPress dans son état d'origine?

Qu'est-ce qu'une durée de vie de plug-in dans une instance déployée de WordPress?

À savoir:

  • les plugins modifient-ils les fichiers existants ou utilisent-ils uniquement des points d’extension définis dans WordPress?
  • les plugins sont-ils autorisés à modifier le schéma de la base de données (par exemple, ajouter de nouvelles colonnes)?
  • comment Wordpress s'assure-t-il que la désinstallation du plug-in laisse toujours WP dans son état d'origine? (Le fait-il?)
4
Marek

Réponse courte:

  • Les plugins ne modifient pas les fichiers existants, ils se connectent à WordPress via une API exposée.
  • Les plugins peuvent modifier le schéma de base de données.
  • Les plugins n'ont pas à désinstaller proprement.

Crochets de plugin

Les plugins se connectent à WordPress à un point spécifique exposé par le noyau WordPress.

http://codex.wordpress.org/Plugin_API

Par exemple, la fonction get_option() lit une option de site dans la base de données. Avant toute action réelle dans cette fonction, WordPress appelle apply_filters( 'pre_option_' . $option, false ). Avec une option foobar, un plugin pourrait écraser la vraie valeur de cette option avec le code suivant:

function override_foobar( $unused ) {
    return 'My custom value.';
}
add_filter( 'pre_option_foobar', 'override_foobar' ); // add_filter(hook, function)

Voir aussi http://adambrown.info/p/wp_hooks/ .

Plugins modifiant la base de données

Les plug-ins ont la possibilité de modifier la base de données, en supposant que l'utilisateur de la base de données WordPress dispose toujours de cette autorisation. Certains des plugins les plus complexes ajoutent leurs propres tables. Il est possible qu'un plugin modifie les tables principales, et nous espérons qu'il le ferait de manière responsable et d'une manière qui ne casse pas les choses si le plugin est supprimé.

Cela doit être examiné sur une base de plugin par plugin.

Désinstallation des plugins

La fonction deactivate_plugins() appelle l'action do_action( 'deactivate_' . trim( $plugin ) ). Un plugin doit s’accrocher à cette action si des choses spécifiques doivent se produire lorsque le plugin est désactivé. D'après mon expérience, peu de plugins effectuent beaucoup de nettoyage de désactivation, c'est-à-dire. mettre leurs réglages dans une chambre froide au cas où ils seraient réactivés.

15
Annika Backstrom

Les plugins dans WordPress font ce que dit le code. Pour répondre spécifiquement à vos questions,

  1. Ils ne devraient pas, mais rien ne les empêche de modifier les fichiers core.
  2. Ils sont autorisés à se connecter entièrement à la base de données de toutes les manières possibles par WordPress.
  3. WordPress ne s'assure pas qu'une désinstallation de plug-in ne détruit pas toute l'installation. Si un auteur de plugin a défini la fonction de désinstallation pour tout supprimer, il le ferait.

Cela laisse donc la question, que peut-on faire si un auteur de plug-in trahit votre confiance et fait quelque chose de malveillant pour votre site? Disposer de sauvegardes régulières de votre répertoire wp-content ainsi que de votre base de données complète est le meilleur moyen de vous assurer que vous serez en mesure de le restaurer en cas de problème sur votre site (par exemple, perte de données, attaque par le piratage, plug-in de mauvaise qualité, etc.). .

3
John P Bloch

Réponse directe: NON

Les plugins peuvent faire tout ce que vous pouvez faire avec le code PHP.

1
User