Плюсы и минусы использования secureEvalJson вместо evalJson

#jquery #json

#jquery #json

Вопрос:

Когда я должен рассмотреть возможность использования

secureEvalJSON: Converts from JSON to Javascript, but does so while checking to see if the source is actually JSON, and not with other Javascript statements thrown in.

evalJSON: Converts from JSON to Javascript, quickly, and is trivial.

Можете ли вы показать мне пример, в котором secureEvalJSON выгоднее, чем evalJSON??

Каковы последствия для производительности использования secureEvalJSON?

Более подробную информацию об этом API можно найти по адресу: http://code.google.com/p/jquery-json /

Ответ №1:

Рассмотрим

 {"test"  : "some_value",
 "test1" : "some_other_value",
 "test2" : alert("Hi, I'm code that is getting executed!")
}
  

простой метод просто оценит это, используя обычный JavaScript (как если бы это был обычный объект, которым он и является), и выполнит alert() команду в процессе.

Безопасный метод (предположительно) удалит alert() .

Безопасный метод был бы предпочтительнее, например, когда вы получаете код из ненадежного источника, чтобы этот источник не запускал код в контексте текущего пользователя и страницы.