PDA

Просмотр полной версии : Security Sandbox Violation в тяжелой форме


MyXus
04.04.2008, 14:09
Пишу проект, который грузит много фоток с многих серверов. Сервера все "мои", на всех в корне лежит crossdomain.xml с разрешением всех айпишников и портов. Во флешке стоит allowDomain('*'), хоть это и не должно влиять. Тем не менее ошибки безопасности при загрузке фото продолжают валиться.

Как выглядит моя система загрузки фото: сервера фоток требуют авторизации, авторизация проходит через передачу GET-параметра в урле любого запроса, поэтому приходится юзать loadPolicyFile, а не родное свойство MovieClipLoader.checkPolicyFile (кстати даже при использовании этого свойства ошибки безопасности в опред ситуациях тоже валятся). Каждая фотка грузится специально созданным класс-инстансом навороченного лоадера.
Что делает лоадер:
Проверяет, загружен ли нужный полиси-файл. Если нет - выполняем loadPoliyFile. Параллельно загружаем тот же файл в качестве XML и ждем пока он загрузится. Все, кому в это время потребуется тот же полиси файл также тихо ждут его.
Когда XML загрузился, ждем еще 300ms (на случай рассинхронизации загрузки) и теперь уже грузим саму фотку. Таким образом, нужный полиси файл на момент начала загрузки картинки ВСЕГДА загружен.

Картинки можно грузить с чужих доменов и без полиси-файлов, главное что к ним нельзя применять BitmapData.draw. А также, почему-то, к мувикам, загрузившим картинки с чужих доменов нельзя применять unloadMovie(). По-моему бред, ну да ладно.

Суть проблемы в том, что известный FF плагин flashTracer показывает ошибки безопасности для одного и того же домена много раз в течение опред времени. При том, что если бы файл действительно был загружен без необходимых разрешений System.security, BitmapData.draw не создавала бы битмапа. А битмапы создаются и выглядят как должно.

Ошибки валились самые разнообразные. Сейчас это разнообразие удалось свести к одному варианту: "SecurityDomain *** tried to access incompatible context ***.jpg".

Перерыл гугль, решений не нашел. Если вы не ответите, придется переводить всю эту бодягу на англ для форумов адоба :-)

UPD: Забыл отметить, что ошибки валятся не при каждой загрузке фотки. Примерно в половине случаев. Хотя все фотки грузятся по одной и той же системе. Корелляции по доменам тоже нет - ошибки есть при работе с любым из серверов.

MyXus
04.04.2008, 17:26
Ошибку нашел кстати, всё дело в unloadMovie().
Всем пака -)

etc
05.04.2008, 00:44
MyXus, у тебя регулярно проблемы с security возникают. Закономерность?

MyXus
07.04.2008, 16:53
Вероятно, потому что я регулярно работаю с проектами, размещенными на нескольких серверах? :-)
По поводу этой проблемы, в гугле на запрос "Security Sandbox Violation unloadmovie" - два десятка невнятных ссылок, из которых на английском дай бог половина. И это при том что я вбиваю в гугль ответ, а не вопрос. Незнаю, лыжи ли не едут в данном случае, или я ***.