Lorsqu’il s’agit de rediriger les visiteurs sur votre site WordPress, il existe plusieurs méthodes et fonctions à votre disposition. Pour les plus téméraires qui aiment coder, il existe deux fonctions couramment utilisées pour effectuer des redirections : wp_redirect()
et wp_safe_redirect()
. Bien que ces deux fonctions aient des objectifs similaires, elles présentent des différences cruciales en matière de sécurité et d’utilisation. Cet article explore ces différences et explique quand utiliser chaque fonction.
Plan de l'article
ToggleQu’est-ce que wp_redirect() ?
Si on se réfère au codex WordPress, wp_redirect()
est une fonction WordPress qui permet de rediriger les utilisateurs vers une nouvelle URL. Voici comment elle fonctionne de manière générale :
wp_redirect($location, $status);
exit;
$location
(obligatoire) : L’URL vers laquelle vous souhaitez rediriger l’utilisateur.$status
(facultatif) : Le code d’état HTTP pour la redirection. Par défaut, il est défini sur302
(redirection temporaire).
Cette fonction est très flexible et permet de rediriger vers n’importe quelle URL. Cependant, cette flexibilité peut également être un inconvénient du point de vue de la sécurité. Si les URL de redirection ne sont pas correctement validées, cela peut entraîner des vulnérabilités telles que des redirections ouvertes.
Qu’est-ce que wp_safe_redirect() ?
Pour répondre à ces préoccupations de sécurité, WordPress propose une alternative plus sécurisée : Une fois de plus, en regarde au codex WordPress, wp_safe_redirect()
. Cette fonction fonctionne de manière similaire à wp_redirect()
, mais avec une vérification supplémentaire pour s’assurer que la redirection se fait vers une URL sûre.
wp_safe_redirect($location, $status);
exit;
La principale différence réside dans le fait que wp_safe_redirect()
permet uniquement les redirections vers les domaines spécifiés dans les paramètres du site (Paramètres > General > Adresse du site (URL)).
Par défaut, elle empêche les redirections vers des domaines externes non approuvés, ce qui réduit le risque de redirections ouvertes et de phishing.
Différences majeures entre wp_redirect et wp_safe_redirect
Flexibilité vs Sécurité
- Flexibilité :
wp_redirect()
permet de rediriger vers n’importe quelle URL, ce qui offre une grande flexibilité, mais nécessite une validation rigoureuse pour éviter les vulnérabilités. - Sécurité :
wp_safe_redirect()
restreint les redirections aux domaines approuvés, offrant une couche de sécurité supplémentaire en empêchant les redirections vers des sites potentiellement dangereux.
Utilisation
- Utilisation de
wp_redirect()
: Utilisez cette fonction lorsque vous êtes sûr que l’URL de redirection est sûre et validée. Par exemple, si vous redirigez vers une URL interne ou une URL que vous contrôlez totalement. - Utilisation de
wp_safe_redirect()
: Utilisez cette fonction lorsque vous voulez vous assurer que les redirections sont limitées aux domaines approuvés, surtout si l’URL de redirection est basée sur des données utilisateur ou des sources externes.
Vérification des URL
wp_redirect()
: Il n’y a pas de vérification automatique des URL. Il est de votre responsabilité de valider l’URL avant de l’utiliser pour éviter les redirections malveillantes.wp_safe_redirect()
: Les URL sont automatiquement vérifiées pour s’assurer qu’elles appartiennent aux domaines approuvés, réduisant ainsi les risques de sécurité.