Flash / Facebook - динамически добавлять междоменную политику в SWF? - PullRequest
2 голосов
/ 21 сентября 2011

Мы создаем приложение, которое загружает фотографии пользователя с Facebook.Кажется, Facebook размещает эти изображения на нескольких хостах.Можно ли динамически добавить междоменную политику после того, как произошло нарушение в изолированной программной среде безопасности?

Например ...

try
{
    // Load the photo passed from the js method
}
catch (SecuritySandboxViolation Exception:e)
{       
    /*

    Transform the exception message which contains the host url from...

    "security error: Error #2048: Security sandbox violation: http://canvas-app.domain.com/SWF.swf cannot load data from security error: Error #2048: Security sandbox violation: http://facebook.tombstone.com/halloween-party-kit/GI_2011_09_TOMBSTONE_SPOOKIFY.swf cannot load data from https://s-hphotos-sjc1.fbcdn.net/229411_989116685126_5519474_47232933_4376850_n.jpg.22421_989116685126_5519474_47232933_4376850_n.jpg."

    to...

    https://s-hphotos-sjc1.fbcdn.net    

    */

    var host = e.getMessage();

    // *magical string transformation*

    Security.loadPolicyFile(host)
}

Ответы [ 2 ]

2 голосов
/ 21 сентября 2011

Если Facebook не разместил междоменный домен на своем сайте, loadPolicyFile не будет работать.

Однако, что вы используете для загрузки изображений? Обычно вам не нужен crossdomain.xml, если вы хотите отображать только изображения.


Редактировать

https://s -hphotos-sjc1.fbcdn.net имеет разрешающий междоменный домен, поэтому проблема заключается в том, как загружается изображение. Попробуйте установить LoaderContext.checkPolicyFile = true для Loader.

1 голос
/ 21 сентября 2011

Скорее всего, проблема в том, что внутри вашего SWF-файла, который встроен или фактически является приложением, вы не определяете свою собственную междоменную политику. Вы должны сделать это либо явно с помощью кода AS3, либо создать междоменную политику в своем собственном домене, домене, где размещается ваш SWF-файл. Facebook, вероятно, ограничен в том, что он может делать с вашим SWF при загрузке, из-за отсутствия спецификации в файле политики или из-за отсутствия всего вместе. Помните направление вещей. Вы не загружаете Facebook с помощью SWF, Facebook загружает ваш SWF. (Обратите внимание, что ответ Джейкобса тоже верен).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...