Дай дураку точку отсчета, и он не устанет считать...

Программирование в ActionScript на примере создания игры лабиринт на Flash

Пример XSS уязвимости с использованием Action Script и Java Script

Программирование на ActionScript Если Вы когда ни будь занимались созданием Flash-роликов то знаете что во Flash имеется свой встроенный скриптовый язык. Ну а если нет то знайте, называется он ActionScript. ActionScript - это объектно-ориентированный язык программирования, который добавляет интерактивность, обработку данных и многое другое в содержимое Flash-приложений. ActionScript исполняется виртуальной машиной (ActionScript Virtual Machine), которая является составной частью Flash Player. ActionScript компилируется в байткод, который и включается в SWF-файл. Как и любого языка программирования есть у ActionScript свой ньюанс. С помощью определённых функций в ActionScript можно заставить браузер выполнить любой JavaScript-код. Поэтому крайне не желалательно допускать публикацию Flash-роликов в подписях, аватарах, сообщениях на Ваших веб-ресурсах, если не соблюдается хотя бы одно из ниже представленных условий:

Первое условие: Показывать загруженные Flash-ролики в теге iframe. Данный вариант подразумевает, что загруженные ролики будут храниться на отдельном домене и не на прямую отображаться на страничке, а с помощью тега iframe. При этом код находится как бы в "песочнице" и не может воздействовать на код основной страницы, ведь он загружается совершенно с другого домена, я надеюсь:)

Второе условие: Использовать опцию AllowScriptAccess в тегах <OBJECT> и <EMBED>. Особенность данного метода заключается в том, что в этих тегах есть параметр AllowScriptAccess. Если он установлена в 'never' то скрипту категорически запрещается куда-либо подавать запросы. Если же данная опция не установлена в какое-либо значение то ей присваивается значение по умолчанию, а это 'always'. А это означает, что ролику разрешены любые действия. Так же AllowScriptAccess может быть установлена в значение 'SameDomain' - при таком значении этой опции flash-ролику разрешается доступ только внутри того домена, на котором он запущен. Ну и, как Вы понимаете это тоже не есть хорошо.

В принципе по своей суди ActionScript достаточно многофункциональный язык и появился он с выходом 5 версии Macromedia Flash, которая стала первой программируемой на ActionScript средой. Я не планирую описывать все функции этого языка, но об одной функции все таки расскажу.

Глобальная функция - getURL

Имеет следующий синтаксис:

  getURL(URL)
  getURL(URL, window)
  getURL(URL, window, method)

Как Вы уже догадались функция getURL имеет три параметра: URL является обязательным параметром и загружает адрес (URL), задающий абсолютное или относительное местоположение документа, или внешнего сценария, который необходимо выполнить. Как правило паараметр URL загружает веб-страницу в фрейм или окно браузера, но также может выполнить сценарий на стороне сервера и получить результат во фрейм или окно браузера, или же выполнить код JavaScript в веб-браузере;
window является не обязательным и определяет окно или фрейм (frame) в HTML, куда должен быть помещен документ;
method является также не обязательным параметром и указывает на метод, которым надо пересылать переменные.
Так, как же можно заставить с помощью Flash-ролика браузер выполнить простейший JavaScript-код? Да очень просто:

getURL("javascript:alert('Чито, не ожидал?')");
Здесь мы в функцию getURL() передаем в виде единственного параметра следующую строку: "javascript:код('джавы')";
И в данном случае при выполнении функциии alert() на экране браузера создается стандартное предупреждающее окно, в котором выводятся данные.
Если JavaScript код подразумевает большие размеры то его необходимо предварительно записать его в переменную т. е. функцию:). Например нам необходимо выполнился следующий код:

  function test()
  {
    document.write('А вот и Я!');
  }
  test();

Для этого всего-то нужно в ActionScript написать:

var variable = "function test(){document.write('А вот и Я!');} test();"; // пишем одной строкой
getURL("javascript:"+variable); //в этой строке идёт вызов кода

Первой строкой мы помещаем в переменную variable = весь javascript код;
А во второй делаем вызов.

А вот и пример XSS уязвимости с использованием Action Script и Java Script



А это пример того, как функцию getURL использовать по назначению


Здесь по нажатию на невидимую кнопку swf ролик переносит пользователя на главную страниу сайта:

Copyright © 2010. Design by dmitry.ivanof a.k.a Мастер Итэ

Посмотреть подробное описание ActionScript, и скачать бесплатно flash исходник можно здесь.

Комментарии:

1.  Ольга пишет:
01.12.2012 в 10:56
Интересно. Любителям необычностей очень пригодится. Спасибо за информацию!

2.  Тамара Розинская пишет:
01.12.2012 в 11:58
Я все примериваюсь к созданию своих роликов. Но страшновато. Я уже столько учусь и всему, чему можно, в школе столько не училась. В общем, надо прочитать не раз, и по сайту посмотреть, может, есть что-то еще на эту тему.

3.  Александр пишет:
01.12.2012 в 14:12
Flash-ролики оживляют сайт, он смотрится ярче,интересней. Я для своего сайта пользуюсь программой Aleo Flash Intro Banner Maker. Конечно она не может создать качественный флеш ролик, но зато быстро и без заморочек.

4.  Дмитрий пишет:
01.12.2012 в 17:32
Блин, лихо то как. А если прописать вредоносный код в функцию и вызвать ее в виде флэш?

5.  Дмитрий Иванов пишет:
01.12.2012 в 18:03
Если потом загрузить этот swf ролик, например в какой нибудь форум или портал, который не соблюдает выше описанные правила (условия в коде) то этот код будет выполнен.

6.  Геннадий Карпинский пишет:
02.12.2012 в 13:55
Нравится мне такая флеш анимация. Завидую белой зависью тем, кто в этом что-то понимает и что-то подобное делает. Конечно, это дает сайту или блогу привлекательный вид. Людям нравится красивое и необычное. Они заходят. Остаются дольше. Особенно, когда накануне праздников, например, Новый Год. Лодочки какие красивые. Или целые истории, как сказка. Что говорить. Это творчество. А оно требует знания, труда и вдохновения.

7.  Дмитрий Иванов пишет:
02.12.2012 в 14:02
Я эти лодочки рисовал, еще когда учился в институте, вдохновения тогда было, хоть отбавляй:)

8.  Ирина пишет:
03.12.2012 в 09:48
Мой опыт создания роликов ограничился использованием программы Movi Maker и то, когда училась в интернетшколе. И один уже сама создала для презентации своей косметической компании. Но это на уровне первоклассника. А так пока как-то побаиваюсь браться за что-то серьезно мало пока что понимаю в этом...

9.  Тамара пишет:
03.12.2012 в 11:31
Познавательно. Необходимо досконально изучить и опробовать!

10.  Дмитрий Иванов пишет:
04.12.2012 в 14:23
Но, только это нужно делать очень аккуратно. У меня по началу, так комп зацикливало.

 

* Капча:
    

* Представьтесь:

Сайт:(без http://)

* Мыло:

      

* Текст сообщения:

 

X