Kenapa `` saya?

Susan Sarandon
Lepaskan: 2024-11-06 21:34:02
asal
240 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!

sumber:php.cn
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