Сообщение от melky
|
Ну, раз все согласились его избегать, значит, стоит его избегать.
|
Избегать eval путём использования new Function? И какой смысл тогда в этом?
Сообщение от http://www.jslint.com/lint.html
|
eval is evil
The eval function (and its relatives, Function, setTimeout, and setInterval) provide access to the JavaScript compiler. This is sometimes necessary, but in most cases it indicates the presence of extremely bad coding. The eval function is the most misused feature of JavaScript.
|
Сообщение от devote
|
На стороне клиента евал опасен так же как и alert. То-есть нанести ущерб клиенту на компе не реально.
|
Смотря где и как его использовать. Пример:
Есть приложение, получающее откуда-нибудь JSON. И парсится этот JSON не с помощью JSON.parse, а с помощью eval'а. Тогда злоумышленник, получив доступ к скрипту, отдающему этот JSON, может вернуть что-нибудь вроде
(function () {
/* some code stealing your cookie */
}(), { /*some json data*/ })
Сообщение от FINoM
|
А почему не просто eval(data)?
|
Тогда контекст будет захвачен.
(function(){
var a = 5;
eval("alert(typeof a)");
window.eval("alert(typeof a)");
})()