這個過去的學年我從高中畢業,現在我在一家小型網絡營銷公司實習。我目前的任務是開發一個在線價格估算器,以便銷售人員能夠快速爲我們的服務提供一致的估算。這是我第一個Javascript項目。我之前在js中完成的最先進的事情只是一些小型和基本的dom操作任務。從表單輸入中計算數據而不使用eval()
我發現了一個網站,其估算量幾乎與我所需要的一樣穩健。所以我正在閱讀他們的代碼來弄清楚它是如何工作的,所以我可以製作自己的版本。有人告訴我,在用戶提交的數據上使用eval()是不好的做法。所以,我想知道在這段代碼中用什麼來代替eval()。
frm = document.form1;
for (var i = 0; i < document.form1.elements.length; i++) {
if (frm.elements[i].type == 'checkbox' || frm.elements[i].type == 'radio') {
if (frm.elements[i].checked) {
v = eval("frm.val" + frm.elements[i].value);
mult = eval("frm.mult" + frm.elements[i].value);
mult = mult.value;
if (mult == '') {
mult = 1
} else {
mult = parseInt(mult)
}
hrs = hrs + parseInt(v.value) * mult;
var cur_val = frm.elements[i].title;
var make_rfp = cur_val.replace("___", mult);
document.getElementById('quote_des').value += make_rfp + "\n";
}
}
}
這裏是我把這個代碼從網站:https://www.designquote.net/html/dq_estimate_wizard.cfm
爲什麼在用戶提交的數據上使用eval是不好的?它會運行任何JS客戶端,所以他們只能傷害自己。 http://stackoverflow.com/questions/1651118/security-risks-of-using-eval-to-execute-user-input-in-javascript –