Maison  >  Article  >  développement back-end  >  Comment intégrer en toute sécurité les valeurs générées par PHP dans JavaScript sur une page Web ?

Comment intégrer en toute sécurité les valeurs générées par PHP dans JavaScript sur une page Web ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-26 11:50:02898parcourir

How to Safely Integrate PHP-Generated Values into JavaScript on a Webpage?

Intégrer des valeurs générées par PHP dans JavaScript sur une page Web

Question :

Comment pouvez-vous incorporer des valeurs générées par PHP dans le code JavaScript d'une page Web ?

L'approche suivante est tentée mais ne donne pas le résultat souhaité :

<?php
  $htmlString= 'testing';
?>
<html>
  <body>
    <script type="text/javascript">
      var htmlString=<?php echo $htmlString; ?>;
      alert(htmlString);
    </script>
  </body>
</html>

Réponse :

Avertissement de sécurité : La solution suggérée dans la question est vulnérable aux attaques Cross-Site Scripting (XSS). Pour atténuer ce risque, il est recommandé d'utiliser json_encode() à la place.

Solution :

Pour intégrer avec précision les valeurs générées par PHP dans JavaScript, modifiez le code comme suit :

<?php
  $htmlString= 'testing';
?>
<html>
  <body>
    <script type="text/javascript">
      // Enclose the PHP tag within quotes
      var htmlString="<?php echo $htmlString; ?>";
      alert(htmlString);
    </script>
  </body>
</html>

Conseils de dépannage :

  • Inspectez la console JavaScript de votre navigateur pour détecter les erreurs potentielles.
  • Comparez la vue source de la page Web dans la navigateur avec votre code pour identifier les disparités.

Remarque supplémentaire :

Dans la section PHP, 'testing' est attribué à $htmlString sans inclure de guillemets dans la valeur littérale. Les guillemets dans le code servent principalement à l'interpréteur PHP pour reconnaître la chaîne littérale.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn