Оценка сервера JS файл опасности - PullRequest
1 голос
/ 20 сентября 2011

Для загрузки внешних файлов js с моего сервера в асинхронном режиме, вместо того, чтобы ждать, пока они загрузятся, включив заголовок html или в конец тела, я использую jquery.get () для получения этих jsфайлы в виде строки, преобразовать в объект с помощью eval () и назначить глобальную переменную в качестве свойства, т.е. (псевдокод):

var globalNameSpace = {};
var data = jquery.get('url/foo.js');           // foo.js returns a function with code
globalNameSpace[foo] = eval(data);
// from here onwards, access code in foo.js as:
globalNameSpace.foo.property;
globalNameSpace.foo.method();

Это также означает, что я могу отображать HTML-страницу с панелью загрузкии т. д.

Вопрос заключается в том, что вся реклама eval () опасна для неконтролируемых входных данных, поскольку это происходит только для загрузки «управляемых» (хотя, возможно, глючных: P) скриптов с моего собственного сервера (ajax).та же политика домена и т. д.), как это опаснее, чем просто включение js-файлов с тегами, я что-то упускаю?

1 Ответ

0 голосов
/ 20 сентября 2011

Нет большей опасности, чем включение JavaScript, обычно использующего блокирующие теги <script>.

Но вы должны рассмотреть либо использование атрибута async, который поддерживается в IE10, Chrome 11, Safari 5 и FF 3.6, либо внедрение элемента scriptв ваш документ, используя jQuery.getScript при возникновении события готовности DOM.

...