在沒有風險評估的情況下解析「輕鬆」的JSON
JSON 是廣泛使用的資料交換格式,需要帶引號的鍵的嚴格語法。但是,某些應用程式可能會遇到帶有不帶引號的鍵的“寬鬆”JSON。由於安全風險,不鼓勵使用 eval 解析此類資料。
避免邪惡的 Eval
eval 的替代方法是基於正則表達式的方法,該方法在解析之前清理 JSON 。此方法掃描 JSON 字串並用帶引號的鍵替換任何未加引號的鍵,確保符合標準 JSON 語法而不影響安全性。
範例實作
要實作此方法,請依照下列步驟操作:
var badJson = "{muh: 2}";
// Sanitize the JSON using regular expression replace
var correctJson = badJson.replace(/(['"])?([a-z0-9A-Z_] )(['"])?:/g, '"$2": ');
// Parse the sanitized JSON using JSON.parse
var obj = JSON.parse(correctJson);
結論
使用正規表示式來清理寬鬆的JSON 可以實現無縫解析,同時避免與eval 相關的潛在安全風險。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3