Web專案會考慮到常見的XSS攻擊,一般會防堵使用者植入相關的Script符號,但有時為了提供User編輯HTML內容,因此必須輸入DB以及DB輸出回HTML時再做一次轉換。

前端encode存入DB,並從DB取出資料時decode。

function escapeHtml(unsafe) {
    return unsafe
         .replace(/&/g, "&")
         .replace(/</g, "&lt;")
         .replace(/>/g, "&gt;")
         .replace(/"/g, "&quot;")
         .replace(/'/g, "&#039;");
}

function unescapeHtml(unsafe) {
    return unsafe
        .replace(/&amp;/g, "&")
        .replace(/&lt;/g, "<")
        .replace(/&gt;/g, ">")
        .replace(/&quot;/g, "\"")
        .replace(/&#039;/g, "'");
}
參考:
can-i-escape-html-special-chars-in-javascript

沒有留言:

張貼留言