輕鬆解碼 HTML 特殊實體
解碼 HTML 特殊實體可能是一項令人困惑的任務。考慮以下 JSON 回應:
{ "message": "We're unable to complete your request at this time." }
注意編碼的撇號 (')。雖然這種編碼背後的原因可能不清楚,但您最關心的是對其進行解碼。
jQuery 的侵入性方法
使用jQuery 的一種可能方法是將HTML 字串轉換為一個div並提取其文字內容:
function decodeHtml(html) { return $('<div>').html(html).text(); }
但是,這種方法有點非常規。
首選解決方案:保留標籤
存在更優雅的解決方案,也保留標籤:
function decodeHtml(html) { var txt = document.createElement("textarea"); txt.innerHTML = html; return txt.value; }
此方法涉及創建一個textarea元素,將其innerHTML 設定為HTML字串,然後檢索其值,該值將是解碼後的
預防XSS 的實際範例
考慮以下範例:
Input: Entity:&nbsp;Bad attempt at XSS:<script>alert('new\nline?')</script><br> Output: Entity: Bad attempt at XSS:<script>alert('new\nline?')</script><br>
如您所見,特殊實體( ) 被解碼,同時保留腳本標籤,確保您的應用程式的安全。
以上是如何輕鬆解碼HTML特殊實體同時防止XSS?的詳細內容。更多資訊請關注PHP中文網其他相關文章!