Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Как безопасно вызвать JS функцию из ActiveX?


Автор: Dimonius 3.9.2008, 11:51
Ситуация следующая:
ActiveX висит на странице и по определённому условию выполняет JS функцию на странице. Вызов происходит посредством того, что JS слушает события от ActiveX.

Код

<script for="MyControl" event="MyEvent(e)" language="jscript" type="text/jscript">
try {
   eval(e.Text);
}
catch {
}
</script>


Вызывается следующая функция:
Код

<script language="javascript" type="text/javascript">
function myFunction(par1, par2) {
   alert(par1 + "-" + par2);
}
</script>


ActiveX передаёт с событием примерно следующий текст:
Код

myFunction('Number','1');


Получается что ActiveX может выполнить всё что угодно на странице, включая то, что он может включить в страницу свою JS функцию и выполнить её! Я подозреваю, что где-то в этом затаилась уязвимость.

Подскажите как безопасно вызывать JS функции из ActiveX?
ActiveX написан на C#. JS функции заранее написаны на странице.

Автор: Dimonius 5.9.2008, 10:50
Сделал следующим образом: получаю событие от ActiveX, в переданном объекте хранятся параметры функции, которая должна быть вызвана по событию.

Код

<script for="MyControl" event="MyEvent(e)" language="jscript" type="text/jscript">
try {
   myFunction(e.par1, e.par2);
}
catch {
}
</script>


Вольности ActiveX'у поубавил smile, считаю решение приемлемо безопасным.

Автор: JSman 7.9.2008, 02:40
Цитата(Dimonius @  3.9.2008,  11:51 Найти цитируемый пост)
Подскажите как безопасно вызывать JS функции из ActiveX?

Для этого существует политика безопасности. Само использование ActiveX говорит о полном доверии пользователя к Вашему продукту. Поэтому, не стоит надееться  на то, что такие прикольные заплатки на скрипте помогут решению ситуации угрозы безопасности.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)