Вміст Flash Player і AIR може обмінюватися даними з серверами. Операція завантаження даних відрізняється від завантаження мультимедійного вмісту, так як завантажена інформація з'являється безпосередньо в програмних об'єктах, а не відображається в якості мультимедійного вмісту. Як правило, вміст може завантажувати дані з того ж домену, в якому створено вміст. Однак для вмісту звичайно потрібні файли політик для завантаження даних з інших доменів (див. Розділ «Елементи управління веб-сайту (файли політики)»).
Примітка. Вміст, що виконується в ізольованій програмному середовищі додатки AIR, ніколи не обслуговується з віддаленого домену (якщо тільки розробник навмисно не імпортував віддалене вміст в ізольовану програмне середовище додатки), тому воно не бере участі в типах атак, від яких захищають файли політик. Відносно вмісту AIR, що знаходиться в ізольованій програмному середовищі додатки, не накладаються обмеження на завантаження даних на основі файлів політик. Однак щодо вмісту AIR в інших ізольованих програмних середовищах діють описані тут обмеження.
Використання класів URLLoader і URLStream
Підключення до сокета
Середовище виконання за замовчуванням шукає файл політики сокетов з порту 843. Як і у випадку файлів політики URL, цей файл називається основним файлом політики.
Коли файли політики були вперше введені у версії Flash Player 6, файли політики сокетов ще не підтримувалися. Підключення до сокет-серверам дозволялися файлом політики, який знаходився в місці розташування за замовчуванням на HTTP-сервері з портом 80 того ж хоста, що і сокет-сервер. Програвач Flash Player 9 ще підтримує цю можливість, а Flash Player 10 вже немає. У програвачі Flash Player 10 підключення до сокета дозволяються тільки за допомогою файлів політики сокетов.
Доступ до підключень до сокета і XML-сокетів відключений за замовчуванням, навіть якщо сокет знаходиться в тому ж домені, що і підключається SWF-файл. Щоб дозволити доступ на рівні сокетів, можна помістити файл політики сокетов в будь-якому з таких адрес:
порт 843 (місце розташування основного файлу політики);
той же порт, що і для основного підключення до сокета;
За замовчуванням Flash Player шукає файл політики сокетов у порту 843 і у того ж порту, який використовується для основного підключення до сокета. Перед створенням файл політики сокетов через інший порт, SWF-файл повинен викликати метод Security.loadPolicyFile ().
Нижче наводиться приклад файлу політики сокетов.
Щоб отримати файл політики сокетов через порт 843 або через той же порт, через який встановлено основне підключення до сокета, потрібно викликати метод Socket.connect () або XMLSocket.connect (). Програвач Flash Player спочатку перевіряє основний файл політики у порту 843. Якщо він його знаходить, то перевіряє наявність метаполітики, яка забороняє передачу файлів політики сокетов через цільової порт. Якщо доступ не заборонений, програвач Flash Player спочатку шукає відповідний атрибут allow-access-from в основному файлі політики. Якщо він його не знаходить, то намагається отримати файл політики через порт основного підключення до сокета.
Щоб отримати файл політики сокетов в іншому місці розташування, спочатку потрібно викликати метод Security.loadPolicyFile () зі спеціальним синтаксисом "xmlsocket". як показано нижче.
Викличте метод Security.loadPolicyFile () перед викликом методу Socket.connect () або XMLSocket.connect (). Після цього програвач Flash Player очікує виконання запиту файлу політики, перш ніж прийняти рішення щодо основного підключення. Однак, якщо в основному файлі політики зазначено, що у Вашій місцевості не може перебувати файл політики, то виклик методу loadPolicyFile () не дасть результатів, навіть якщо там буде файл політики.
Якщо розгортається сокет-сервер і потрібно додати файл політики сокетов, потрібно визначитися, через який порт буде передаватися цей файл: через порт основних підключень або через інший. У будь-якому випадку сервер повинен дочекатися першої передачі даних від клієнта, перш ніж відправити відповідь.
Коли програвач Flash Player запитує файл політики, він завжди передає наступний рядок після установки підключення:
Отримавши цей рядок, сервер може передати файл політики. Запит програвача Flash Player завжди закінчується нульовим байтом, і відповідь сервера також повинен закінчуватися нульовим байтом.
Не намагайтеся використовувати один і той же підключення і для запиту файлу політики, і для основного підключення. Розірвіть підключення після передачі файлу політики. Якщо цього не зробити, програвач Flash Player розриває підключення, встановлене для перевірки файлу політики, і тільки після цього встановлює основне підключення.
захист даних
Щоб захистити дані від перехоплення і зміни при передачі через Інтернет, можна використовувати протоколи TLS і SSL на сервері, з якого відправляються дані. До сервера можна підключатися за допомогою протоколу HTTPS.
У додатках, створених для середовища виконання AIR 2 і довше пізніх версій, також можна захистити обмін даними через сокет TCP. Клас SecureSocket дозволяє встановити підключення до сервера сокетів, який використовує TLS версії 1 або SSL версії 4.
Відправка даних
Відправлення та завантаження файлів
Метод FileReference.upload () запускає завантаження обраного користувачем файлу на віддалений сервер. Перед тим як викликати метод FileReference.upload (). слід викликати метод FileReference.browse () або FileReferenceList.browse ().
Код, що викликає метод FileReference.browse () або FileReferenceList.browse (). можна викликати тільки у відповідь на подію миші або клавіатури. При виклику цього коду в інших ситуаціях програвач Flash Player 10 і пізніших версій видає виключення. Однак для ініційованого користувачем події не потрібно викликати ці методи з ізольованою програмного середовища додатки AIR.
Виклик методу FileReference.download () відкриває діалогове вікно, в якому користувач може завантажити файл з віддаленого сервера.
Примітка. Якщо ваш сервер вимагає перевірки автентичності користувачів, тільки Flash-додатки, запущені в браузері (тобто з використанням додаткового модуля оглядача або елемента управління ActiveX), можуть представити користувачеві діалогове вікно для введення імені користувача і пароля (для перевірки автентичності) і тільки потім перейти до завантажень. Програвач Flash Player не дозволяє відправку даних на сервер, що вимагає перевірки автентичності.
Відправлення та завантаження не дозволяються, якщо викликає SWF-файл знаходиться в локальній ізольованою програмному середовищі файлової системи.
За замовчуванням SWF-файл не може ініціювати відправку вмісту на інший сервер або завантаження з іншого сервера. SWF-файл може виконувати ці операції, тільки якщо на цьому сервері є файл політики, що надає дозвіл для домену викликає SWF-файлу.