Mengatasi Isu Melarikan Diri dalam html/templat dengan Baris Baharu
Dalam templat HTML, baris baharu yang dikodkan sebagai n dipaparkan sebagai entiti HTML (< br>) dan bukannya pemisah baris sebenar. Ini berlaku apabila n aksara dilarikan oleh templat dan bukannya diterima sebagai sebahagian daripada data yang dipercayai.
Penyelesaian: Sanitasi dan Pra-Escaping
Untuk menyelesaikan isu ini, ikut langkah berikut:
Contoh Pelaksanaan:
Kod berikut menunjukkan proses:
<code class="go">package main import ( "html/template" "os" "strings" ) const page = `<!DOCTYPE html> <html> <head> </head> <body> <p>{{.}}</p> </body> </html>` const text = `first line <script>dangerous</script> last line` func main() { t := template.Must(template.New("page").Parse(page)) safe := template.HTMLEscapeString(text) safe = strings.Replace(safe, "\n", "<br>", -1) t.Execute(os.Stdout, template.HTML(safe)) }</code>
Kod ini membersihkan teks, menggantikan baris baharu dengan
dan menyerahkannya kepada templat sebagai data pra-melarikan diri. Keputusan yang diberikan akan memaparkan pemisah baris dengan betul seperti yang dimaksudkan tanpa melepaskan isu.
Atas ialah kandungan terperinci Bagaimana untuk Membuat Baris Baharu dengan Betul dalam Templat HTML?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!