PDA

Просмотр полной версии : allowDomain(), loadPolicyFile() несколько вопросов о их использовании


__i
16.02.2006, 18:45
Вобщем че-то я окончательно запутался с ними. И хотелось бы все разложить по полочкам.

Мои мысли по поводу их работы (Исправте где я не верно говорю):

Функция allowDomain позволяет нам загружать контент (swf, видео, картинки) с доменов указаных в ней.
Ситуация: У нас постепенно приходят данные о нашем контенте, который лежит где попало (разные домены). Мы можем вызывать

System.security.allowDomain("домен1");
.....
System.security.allowDomain("домен2");
....
System.security.allowDomain("доменN");
.....

или нужно вызвать это все сразу

System.security.allowDomain("домен1","домен2",...,"доменN");

????
____________________________________

Теперь вопрос по loadPolicyFile().

Если я желаю грузить данные (XML, LoadVars) с datadomain.com, а флешка запущена с flashdomain.com, то я должен файл crossdomain.xml положить на datadomain.com? привильно я понял ? а в нем я должен написать:

....loadPolicyFile("http://datadomain.com/polisy/crossdomain.xml");

<cross-domain-policy>
<allow-access-from domain="datadomain.com" />
<allow-access-from domain="*.datadomain.com"/>
..........................
</cross-domain-policy>


И если я загружу этот файл с flashdomain.com с таким содержимым та флешка нифига не возмет с datadomain.com.

olegn
16.02.2006, 20:46
или нужно вызвать это все сразу
В документации указан твой второй вариант
System.security.allowDomain("домен1","домен2",...,"доменN");
Далее.
Если я желаю грузить данные (XML, LoadVars) с datadomain.com, а флешка запущена с flashdomain.com, то я должен файл crossdomain.xml положить на datadomain.com? привильно я понял ? а в нем я должен написать:

....loadPolicyFile("http://datadomain.com/polisy/crossdomain.xml");

Код:

<cross-domain-policy>
<allow-access-from domain="datadomain.com" />
<allow-access-from domain="*.datadomain.com"/>
..........................
</cross-domain-policy>

И если я загружу этот файл с flashdomain.com с таким содержимым та флешка нифига не возмет с datadomain.com.
1. crossdomain должен находиться на datadomain.com в твоем случае, ...
2. ... но loadPolicyFile нужно использовать, если crossdomain расположен не в корневой директории, а в какой-то другой. В твоем примере применение loadPolicyFile подразумевает, что crossdomain должен лежать в директории /polisy Можно просто положить crossdomain в корень, и Flash Player по умолчанию там его будет искать.
3. В твоем случае crossdomain выглядит примерно так (подробнее см. документацию)
<cross-domain-policy>
<allow-access-from domain="flashdomain.com" />
<allow-access-from domain="*.flashdomain.com"/>
</cross-domain-policy>
То есть в этом файле ты пишешь список доменов, ИЗ КОТОРЫХ разрешен доступ к твоим данным на datadomain.com

__i
16.02.2006, 21:06
Спасибо!, теперь разобрался !

flash33
26.04.2006, 21:42
Если домен чужой, как я там смогу прописать crossdomain.xml?

KUZEN
26.04.2006, 21:56
Если домен чужой, как я там смогу прописать crossdomain.xml?
Какой хитрый ))) Это для того и сделано что бы ты не воровал не своё ))) Если есть доступ прописывай и пользуйся, если нет то ...

etc
27.04.2006, 00:36
allowDomain разрешает обращаться мувикам с указанных в функции доменов к мувику, в котором прописана эта строка, а не наоборот, как считают многие.
crossdomain.xml может быть размещён только владельцем удалённого сайта (случаи взлома в расчёт не берём)