Heim  >  Artikel  >  Backend-Entwicklung  >  Wie füge ich PHP-generierte Werte sicher in JavaScript-Code ein?

Wie füge ich PHP-generierte Werte sicher in JavaScript-Code ein?

DDD
DDDOriginal
2024-10-28 18:18:29405Durchsuche

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

Integration von PHP-generierten Werten in JavaScript-Code

Beim Versuch, PHP-generierte Variablen in JavaScript-Code zu verwenden, können Schwierigkeiten auftreten. Beispielsweise funktioniert das folgende Code-Snippet möglicherweise nicht wie erwartet:

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

Lösung:

Um dieses Problem zu beheben, schließen Sie das PHP-Tag in doppelte Anführungszeichen ein:

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

Debugging-Tipps:

Wenn Sie auf JavaScript-Fehler stoßen, verwenden Sie die von Ihrem Browser bereitgestellte JavaScript-Konsole, um etwaige Probleme zu identifizieren. Untersuchen Sie außerdem den Quellcode der Seite, wie er vom Browser gerendert wird.

Achtung:

Es ist unbedingt zu beachten, dass der oben beschriebene Ansatz Sicherheitslücken mit sich bringen kann. insbesondere Cross-Site-Scripting-Angriffe (XSS). Um diese Risiken zu mindern, sollten Sie die Verwendung von json_encode() in Betracht ziehen, wie in der alternativen Lösung unten vorgeschlagen:

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

Das obige ist der detaillierte Inhalt vonWie füge ich PHP-generierte Werte sicher in JavaScript-Code ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn