在沒有風險評估的情況下解析「輕鬆」的JSON
JSON 是一種廣泛使用的資料交換格式,需要帶引號的鍵的嚴格語法。但是,某些應用程式可能會遇到帶有不帶引號的鍵的“寬鬆”JSON。由於安全風險,不鼓勵使用 eval 解析此類資料。
避免邪惡的 Eval
eval 的一種替代方法是基於正則表達式的方法,該方法在解析之前清理 JSON 。此方法掃描 JSON 字串並用帶引號的鍵替換任何未加引號的鍵,確保符合標準 JSON 語法而不影響安全性。
範例實作
要實現此方法,請按照以下步驟操作:
<code class="javascript">var badJson = "{muh: 2}"; // Sanitize the JSON using regular expression replace var correctJson = badJson.replace(/(['"])?([a-z0-9A-Z_]+)(['"])?:/g, '"": '); // Parse the sanitized JSON using JSON.parse var obj = JSON.parse(correctJson);</code>
結論
結論 使用正規表示式來清理寬鬆的JSON 可以實現無縫解析,同時避免與eval 相關的潛在安全風險。以上是如何在不使用“eval”的情況下安全地解析“寬鬆”JSON?的詳細內容。更多資訊請關注PHP中文網其他相關文章!