Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Kenapa `` saya?

Kenapa `` saya?

Susan Sarandon
Susan Sarandonasal
2024-11-06 21:34:02166semak imbas

Why is my ``?

Tidak perlu < Melarikan diri dalam Templat HTML: Menyelesaikan dengan teks/templat

Isu terbaharu timbul dalam alat pembangunan yang menggunakan templat untuk penjanaan fail, khususnya readmes dan lesen. Semuanya beroperasi dengan lancar, kecuali untuk keadaan di mana < watak akan berubah menjadi <. Walau bagaimanapun, > watak kekal tidak terjejas.

Untuk menggambarkan isu ini, pertimbangkan coretan kod berikut:

<code class="pawn">#include <{{.Repo}}></code>

Di sini, parameter Repo sepatutnya telah dimasukkan seperti yang dijangkakan, menghasilkan:

#include <sometext>

Walau bagaimanapun, keputusan sebenar ialah:

#include &amp;lt;sometext>

Analisis dokumentasi tidak memberikan penjelasan yang jelas untuk tingkah laku ini. Ia kelihatan tidak logik untuk > watak kekal tidak terjejas semasa < watak mengalami pelarian.

Penyelesaian terletak pada memahami tujuan html/template. Ia direka khusus untuk menjana output HTML, menyediakan pelarian sensitif konteks automatik untuk mengelakkan suntikan kod. Dokumentasi dengan jelas menyatakan:

html/template hanya untuk menjana output HTML. Ia menyediakan antara muka yang sama seperti teks/templat pakej dan harus digunakan bukannya teks/templat apabila outputnya ialah HTML.

Apabila output bukan HTML, seperti yang berlaku di sini dengan fail readme, ia adalah lebih sesuai menggunakan teks/templat. Enjin templat ini tidak melepaskan data, menyelesaikan isu penukaran aksara yang tidak perlu. Dengan bertukar kepada teks/templat, output yang dijangkakan telah dicapai:

#include <sometext>

Perbezaan antara html/templat dan teks/templat ini memastikan bahawa pelarian sensitif konteks digunakan hanya apabila perlu, menghalang penukaran aksara yang tidak dijangka dalam bukan -Senario output HTML.

Atas ialah kandungan terperinci Kenapa `` saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn