Kenapa `` saya?

Susan Sarandon
Lepaskan: 2024-11-06 21:34:02
asal
321 orang telah melayarinya

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>
Salin selepas log masuk

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

#include <sometext>
Salin selepas log masuk
Salin selepas log masuk

Walau bagaimanapun, keputusan sebenar ialah:

#include &amp;lt;sometext>
Salin selepas log masuk

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>
Salin selepas log masuk
Salin selepas log masuk

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 Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan