Maison  >  Article  >  développement back-end  >  Comment inclure en toute sécurité les valeurs générées par PHP dans le code JavaScript ?

Comment inclure en toute sécurité les valeurs générées par PHP dans le code JavaScript ?

DDD
DDDoriginal
2024-10-28 18:18:29405parcourir

How to Safely Include PHP-Generated Values in JavaScript Code?

Incorporation de valeurs générées par PHP dans le code JavaScript

Lorsque vous essayez d'utiliser des variables générées par PHP dans du code JavaScript, des difficultés peuvent survenir. Par exemple, l'extrait de code suivant peut ne pas fonctionner comme prévu :

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

Solution :

Pour résoudre ce problème, placez la balise PHP entre guillemets :

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

Conseils de débogage :

Lorsque vous rencontrez des erreurs JavaScript, utilisez la console JavaScript fournie par votre navigateur pour identifier tout problème. De plus, examinez le code source de la page tel que rendu par le navigateur.

Attention :

Il est essentiel de noter que l'approche décrite ci-dessus peut introduire des failles de sécurité, en particulier les attaques de type cross-site scripting (XSS). Pour atténuer ces risques, envisagez d'utiliser json_encode() comme suggéré dans la solution alternative ci-dessous :

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

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