Templat Tanpa Diduga Melarikan Diri <
Seorang pengguna menghadapi masalah dengan templat dalam alat pembangunan mereka. Walaupun menggunakan templat HTML, yang secara automatik melepaskan data untuk pembenaman HTML yang selamat, mereka mendapati bahawa walaupun aksara > telah dipaparkan dengan betul, watak < sedang ditukar kepada <.
Penjelasan
Templat HTML dalam pakej html/template Go direka khusus untuk menjana output HTML. Mereka menyediakan pengekodan bergantung konteks automatik untuk memastikan nilai data tertanam dengan selamat dalam dokumen HTML. Pengekodan ini menghalang pengguna berniat jahat daripada menyuntik kod tidak selamat ke dalam output. Walau bagaimanapun, pakej teks/templat tidak mempunyai ciri pengekodan ini dan hanya mentafsir nilai data sebagai teks biasa.
Dalam kes ini, memandangkan pengguna berhasrat untuk menjana output bukan HTML (mungkin skrip Pawn), menggunakan teks /pakej templat adalah lebih sesuai. Pakej html/template tidak semestinya terlepas daripada < aksara kerana ia menjangkakan output akan dibenamkan dalam HTML, yang tidak berlaku.
Penyelesaian
Untuk menyelesaikan isu ini, pengguna harus beralih kepada teks/ pakej templat apabila menjana output bukan HTML. Ini akan melumpuhkan pengekodan automatik dan membenarkan paparan yang betul bagi semua aksara, termasuk < dan >.
Atas ialah kandungan terperinci Mengapakah \'<\' dilarikan ke \'<\' dalam templat HTML saya, walaupun \'>\' dipaparkan dengan betul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!