首頁 >web前端 >js教程 >如何在 JavaScript 中安全地計算字串:「eval()」的替代方案?

如何在 JavaScript 中安全地計算字串:「eval()」的替代方案?

Susan Sarandon
Susan Sarandon原創
2024-11-26 06:32:12750瀏覽

How to Safely Evaluate Strings in JavaScript: Alternatives to `eval()`?

JavaScript 中的安全字串計算:eval() 的替代品

eval() 函數雖然方便,但暴露了JavaScript 中潛在的安全風險。在處理包含可執行程式碼的不受信任字串時,必須找到更安全的替代方案。

一個可行的選擇是使用 Function() 建構子。此建構函數允許我們從給定字串建立動態函數:

function evil(fn) {
  return new Function('return ' + fn)();
}

利用此函數,我們可以計算數學字串表達式,而無需承擔與 eval() 相關的風險。以下是一個範例:

const apa = "12/5*9+9.4*2";
console.log(evil(apa)); // Output: 40.4

此方法提供了一種安全的方法來計算字串值,而無需求助於 eval()。它提供了針對惡意程式碼注入的增強保護,使其成為處理不受信任輸入的更安全選擇。

以上是如何在 JavaScript 中安全地計算字串:「eval()」的替代方案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn