我的Javascript代碼旨在獲取一些不受信任的字符串變量並將其呈現在DOM中。它將插入格式良好的HTML中的已知點。如果且僅當字符串不可能包含HTML元素時纔會插入。腳本執行是主要的擔心,但任何可能被用於攻擊的注入都是令人擔憂的。什麼是最簡單的檢查可能的HTML/JS注入攻擊?
如果字符串看起來不安全,我可以簡單地不在DOM中呈現它。沒有要求對發現可能不安全的字符串進行消毒或做任何事情。事實上,我想避免圖書館,並喜歡一個無需維護的簡單檢查。我也看到了向DOM添加文本節點的解決方案,但我只是說這對我所做的事不起作用。
我想測試也許是因爲「確實字符串包含<」那樣簡單:
function isItSafe(text) { return text.indexOf('<') === -1; }
但也許這是幼稚的。尤其是,當某些漏洞利用依賴於某個瀏覽器響應無效HTML的行爲時。可以在不使用「<」的情況下創建注入漏洞?如果是這樣,你認爲最低限額的支票需要做些什麼?
使用正則表達式!我認爲這個答案https://stackoverflow.com/a/20855840/6826071是你需要的。 – DrunkDevKek
我需要一些方法來知道方法是否安全。我試圖設定我的問題,探索確定安全所需的具體內容。 –