Выполнение JavaScript из Flex: опасна ли эта функция javascript?

У меня есть гибкое приложение, которому нужна возможность генерировать и выполнять JavaScript. Когда я говорю это, я имею в виду, что мне нужно выполнить необработанный JavaScript, который я создаю в своем приложении Flex (а не только существующий метод JavaScript).

В настоящее время я делаю это, открывая следующий метод JavaScript:

function doScript(js){ eval(js);}

Затем я могу сделать что-то подобное в Flex (примечание: я делаю что-то более существенное, чем окно предупреждения в реальном приложении Flex):

ExternalInterface.call("doScript","alert('foo'));

Мой вопрос в том, представляет ли это какой-либо риск для безопасности, я предполагаю, что это не так, поскольку все Flex и JasvaScript работают на стороне клиента ...

Есть лучший способ сделать это?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
5
0
3 088
6
Перейти к ответу Данный вопрос помечен как решенный

Ответы 6

Насколько я знаю, а я точно не хакер, с вами все в порядке. На самом деле, если бы кто-то захотел, они могли бы использовать ваш код в любом случае на стороне клиента, но я не понимаю, как они могут использовать ваш код на стороне сервера с помощью javascript (если вы не используете javascript на стороне сервера)

Я не понимаю, где это позволяет им делать то, что они уже не могли сделать, вызвав eval. Если здесь появляется дыра в безопасности, я ее не вижу.

Само по себе это не опасно, но в тот момент, когда вы передаете в функцию какие-либо данные, предоставленные пользователем, это готово для эксплойта с внедрением кода. Это беспокоит, и я бы этого избегал. Я думаю, что лучшим подходом было бы показать только ту функциональность, которую вы необходимость, и не более того.

Ответ принят как подходящий

Функция JavaScript не нужна, первым аргументом ExternalInterface может быть любой код JavaScript, это не обязательно должно быть имя функции (так сказано в документации, но это неверно).

Попробуй это:

ExternalInterface.call("alert('hello')");

Помните также, что действия сценария управляются тегом «AllowScriptAccess» в инструкции. Если веб-страница не требует этих действий, они не должны разрешать запуск скриптов.

http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_16494

ExternalInterface.call("eval", "alert('hello');");

Другие вопросы по теме