web-dev-qa-db-fra.com

Dois-je nettoyer la requête de recherche Wordpress?

Je soumets des données de recherche sur une page personnalisée searchi.php

<?php
    //
    $search_variables = $_GET['s']. '+' .$_GET['cat'];

    //This sends http post to url without curl
    header("Status: 301 Moved Permanently");
    header("Location:http://localhost/wordpress/?s=$search_variables");
    exit;

?>

Je sais que wp_query désinfecte les variables pour moi, donc je ne devrais pas m'en inquiéter. Mais il vaut mieux demander que d’être désolé, y at-il un moyen de compromettre la sécurité?

J'ai remarqué l'écho de la variable $search_variables avec <div></div> inséré dans les travaux de recherche, alors dois-je faire quelque chose à ce sujet?

2
user8842

Non, WordPress désinfecte la requête de recherche.

Pour utiliser la requête de recherche désinfectée, utilisez the_search_query() pour répercuter, ou get_search_query() pour renvoyer la requête de recherche.

Modifier

Basé sur votre modification:

  • N'utilisez pas $_GET['s']. Utilisez get_search_query().
  • N'utilisez pas $_GET['cat']. Utilisez get_the_category().
  • Toutes les données $_GET et $_POST doivent être supposées intrinsèquement dangereuses, et doivent être vérifiées/validées en conséquence.
9
Chip Bennett