Repository navigation
Hardening
send_test() — accès défensif au paramètre email
Remplacement de $request->get_params()['email'] (accès tableau non défensif) par $request->get_param('email') avec vérification is_string() avant sanitize_email(). Évite une TypeError PHP si le champ est absent ou de type inattendu ([], null…).
Fichiers debug — wp_tempnam() + suppression après envoi
get_temp_dir() . 'debug-' . uniqid() . '.txt'→wp_tempnam('haet-mail-debug')(nom non prévisible, fichier créé directement par WordPress)- Ajout d'un hook
shutdownviaadd_action()pour supprimer le fichier temporaire après quewp_mail()l'a utilisé comme pièce jointe
CSS textarea — esc_textarea()
Les deux textareas du Mail Builder (mailbuilder_css_desktop, mailbuilder_css_mobile) utilisaient echo brut. Ajout de esc_textarea().
Bibliothèque de templates distante — validation schéma JSON
Ajout d'une méthode privée sanitize_template() appliquée à chaque objet reçu de templates.wp-html-mail.com avant stockage en transient :
- Rejette les objets malformés (pas d'objet, pas de
versionstring) sanitize_text_field()surname,description,authoresc_url_raw()surthumbnail,preview,url,download_url