使用 markupsafe Python模塊中的 escape() 函數(shù)對(duì)外部輸入進(jìn)行轉(zhuǎn)義
在開發(fā)網(wǎng)頁(yè)應(yīng)用程序時(shí),對(duì)于外部輸入,要保持謹(jǐn)慎態(tài)度。先加工一下外部輸入,是個(gè)好主意。
一個(gè)重要的加工步驟就是轉(zhuǎn)義(escape)。
將 '<script>' 中的大于號(hào)與小于號(hào)轉(zhuǎn)義成為 HTML 符號(hào),避免用戶的輸入被當(dāng)作程序執(zhí)行
from markupsafe import escape
escape('<script>') # 變成 Markup('<script>')
思考:如果輸入是 '< script >' ,即 script 的前后都有空格, 使用 escape() 函數(shù)轉(zhuǎn)義,會(huì)變成什么?
將 & 變成 HTML 符號(hào)
escape('&') # Markup('&')
將單引號(hào)變成 HTML 符號(hào)
escape('\'') #?Markup(''')
Markup 對(duì)象可以與普通字符串拼接,變成另外一個(gè) Markup 對(duì)象
escape('<script>') + '</script>' # Markup('<script></script>')
escape() 函數(shù)支持中文
escape('中文 > English') # Markup('中文 > English')
