HTML 轉義(HTML escaping)是將特殊字符轉換為其對應的 HTML 實體代碼,這樣可以保證這些字符在網頁中正確顯示而不被解釋為 HTML 標籤或其他特殊命令。這樣做主要是防止 HTML 注入攻擊(如 XSS 攻擊),並且確保某些符號(如 <, >, &)能夠正確顯示。
HTML 轉義字符:
以下是一些常見的 HTML 轉義字符和它們的對應實體代碼:
字符 HTML 實體代碼 實體名稱
& & & (ampersand)
< < less than
> > greater than
" " double quote
' ' single quote
non-breaking space
© © copyright symbol
® ® registered trademark
轉義的用途:
防止 HTML 注入攻擊:使用 HTML 轉義可以防止用戶輸入的數據被解釋為 HTML 代碼,避免 XSS(跨站腳本)攻擊。
顯示特殊字符:當頁面需要顯示一些特殊字符(如 <, >, &)時,這些字符會被轉換為對應的 HTML 實體代碼,以確保它們不會被瀏覽器錯誤解釋。
處理用戶輸入:當接受用戶輸入(如表單或 URL)並顯示在網頁上時,將輸入進行 HTML 轉義處理可以避免破壞頁面結構或功能。
範例:
假設有以下 HTML 代碼:
html
<p>這是一些 HTML 範例:</p>
<p>這是一個 < 和 > 符號。</p>
<p>這是 & 符號。</p>
這段代碼會在網頁上顯示為:
這是一些 HTML 範例:
這是一個 < 和 > 符號。
這是 & 符號。
如果不進行 HTML 轉義,瀏覽器可能會錯誤解析 < 和 > 為標籤,並且 & 會被解釋為實體代碼的開始符號。
經過 HTML 轉義後,代碼應該是:
html
<p>這是一些 HTML 範例:</p>
<p>這是一個 < 和 > 符號。</p>
<p>這是 & 符號。</p>
這樣,無論用戶輸入的內容中包含何種特殊字符,瀏覽器都會正確顯示它們,而不會錯誤解析成 HTML 標籤或其他特殊含義。