在平常工做寫模板的時候最長遇到的問題就是xss和字符轉義html
html是一種類xml,xml有本身的格式
xss
<div id="a">url
xxxx<span>xxxx</span>spa
</div>code
在模板中作字符轉義的目標就是不打亂xml這種格式,具體的作法:不能出現「 " ' < > & 」這幾個字符,這個就是模板引擎encode作的工做xml
同時會帶來意外的好處:XSS被順帶解決了,沒有尖括號,<script>就不會出現,沒有引號,onclick也不會出現htm
例外,在<script>標籤後邊 有且只有遇到</script>纔會結束 因此能夠在裏邊寫任何字符模板引擎
URL 字符轉義ip
當咱們須要拼一個a標籤的href的時候可能會用到URL字符轉義(同時也須要作HTML轉義 ,由於大環境仍是html文本里)模板
URL也有本身的格式
xxxx?aaa=bbb&cc
咱們也要注意不打亂URL的格式,在js 中有倆個方法:encodeURL,encodeURLcompent,
encodeURL是轉義在url上的非queryString的部分 即問號之前的部分
encodeURLcompent是轉義在queryString 也就是鍵值對的(aaa ,bbb,cc)(用的比較多)