2010-01-04 2 views
2

Я хочу жить с моим сайтом.AS3: нарушение безопасности песочницы

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

FWIW, этот только происходит, когда я экспортирую сборку выпуска ... Я могу загрузить данные php без проблем на моей фазе отладки/разработки локально в Flex.

Что дает? Когда я делаю запрос на основе PHP для данных я всегда получаю эту ошибку выскакивать:

Error #2044: Unhandled securityError:. text=Error #2048: Security sandbox violation: http://alubow.com/jml_testing/viewable/alubow_project.swf cannot load data from http://www.alubow.com/jml_testing/foldergrab.php?ipath=assets/bitmap/portrait_thumbs/&tpath=assets/bitmap/portrait_imgs/ . at utils.php::DirectoryReader() at alubow_project/newScroller() at alubow_project/mainClickOut()

Есть код нужно добавить, чтобы получить эту работу? Нужно ли настраивать сервер, который я использую? Мне скоро нужно будет жить с этим сайтом, и эти ошибки, которые я получаю как локально, так и serveride (через браузер), неприемлемы.

МОЖЕТ БЫТЬ ПРОБЛЕМА С ИСПЫТАНИЕМ FLASH PLAYER, который УСТАНОВЛЕН? У меня есть отладочная версия флеш-плеер 10.

Jml

+1

Вы должны действительно избегать политики crossdomain, если это вообще возможно.Если вы просто пытаетесь заставить это работать во время разработки, вы можете добавить его в файл доверия проигрывателя Flash Player или сделать то, что говорит Чак ниже. Для получения дополнительной информации о том, почему политики crossdomain опасны, просмотрите мой блог: http://www.jamesward.com/2009/11/08/how-bad-crossdomain-policies-expose-protected-data-to-malicious-applications/ –

+0

Джеймс, спасибо за информацию. Я обновил свой вопрос. Если у кого-то есть другой вклад, мы будем очень благодарны. Я установил версию отладчика на свою локальную машину, чтобы использовать trace(). – jml

ответ

3

Проблема связана с префиксом www. Я думаю, вы пытаетесь загрузить страницу с субдоменом www, а URL-адрес, который вы ищете, имеет этот префикс.

Теперь, что вам нужно сделать, это один из следующих действий:

  • изменения запроса URL
  • добавить как www.yourdomain.comИ yourdomain.com к crossdomain .xml
  • позвоните по адресу dymanicaly. это лучшее решение, но требуется еще больше работы. вы можете сделать это с помощью ExternalInterface и подключиться к JS here. ИЛИ вы можете использовать BrowserManager.

Наслаждайтесь!

+1

Прохладный. Где я могу поместить файл crossdomain.xml? В корне alubow.com/* или на одном уровне? – jml

+0

Nevermind. Я понял, что он должен идти в корень mydomain.com/*. Большое спасибо за вашу помощь, yn2. – jml

1

Я знаю, что это странно, но для локальных файлов, загруженных через флэш-плеер вы, вероятно, просто нужно ударить this page. Посмотрите вверху справа вверху на что-то похожее на примерное изображение. Это приложение Flex. Нажмите последовательные вкладки, пока вы не прочитаете панель «Глобальные параметры безопасности» (в настоящее время 3-го слева, с изображением глобуса и замка). Выберите меню «Изменить места» и выберите «Добавить место». Затем вы можете добавить swf или вашу папку swf в белый список, и они смогут получить доступ к внешним ресурсам магически.

+0

это _not_ локальные файлы. все, что я загружаю, находится на сервере, так что это то, чего я не понимаю. Я также не знаю, что происходит с этой страницей ... ??? – jml

+0

Нет, но вы проверяете свой swf локально правильно? Я знаю, что страница запутанна, есть приложение наверху, где вы можете добавить в свой swf белый список сетевых подключений. Каким-то образом это сохраняется на вашем компьютере и устраняет проблему. –

+0

Я тестировал локально, и все там работает. Теперь я хочу разместить сайт в Интернете, и это, похоже, является источником проблемы. Я упомянул в своем сообщении, что проблема возникает только при экспорте сборки релиза. В этот момент скомпилированный SWF-файл не запускается ни на локальной, ни на серверной стороне. – jml

1

Возможно, это связано с тем, что ваше приложение запрашивает у www.alubow.com при размещении на alubow.com, что вызывает запрос для http://www.alubow.com/crossdomain.xml, которого не существует. Вы можете обратиться к своему приложению как www.alubow.com/jml_testing/viewable/alubow_project.swf и избежать ошибки.

С другой стороны, вы можете добавить файл crossdomain.xml на www.alubow.com.

Смежные вопросы