Rumah >pembangunan bahagian belakang >Golang >Bagaimana Mengendalikan Baris Baharu dalam Templat HTML dengan Selamat?
Melepaskan Baris Baharu dalam Templat HTML
Apabila memuatkan fail teks dengan baris baharu ke dalam templat HTML, adalah penting untuk mengambil langkah berjaga-jaga terhadap skrip merentas tapak (XSS) serangan. Sebaik-baiknya, n aksara hendaklah digantikan dengan
tag untuk mengekalkan pemisah baris dalam penyemak imbas. Walau bagaimanapun, menggantikan aksara secara langsung boleh menyebabkan templat melarikan diri daripadanya sebagai entiti HTML
, yang tidak akan dipaparkan seperti yang dimaksudkan.
Penyelesaian Menggunakan templat.HTMLEscape()
Untuk mengelakkan isu semasa mengekalkan perlindungan XSS, pertimbangkan untuk menggunakan fungsi templat.HTMLEscape() dahulu untuk membersihkan teks. Fungsi ini melepaskan aksara berbahaya sebelum menggantikan n dengan
.
Contoh:
<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)) // template.HTML encapsulates a known safe HTML document fragment. }</code>
Output dalam Penyemak Imbas:
<code class="html">first line <script>dangerous</script> last line</code>
Dengan melepaskan teks sebelum penggantian, templat memaparkan baris dengan betul pecah sambil melindungi daripada serangan XSS.
Atas ialah kandungan terperinci Bagaimana Mengendalikan Baris Baharu dalam Templat HTML dengan Selamat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!