2011-01-09 5 views
0

У меня есть файл crossdomain.xml, который позволяет SWF запускать только несколько доменов для загрузки ресурсов из моего домена. Однако один простой способ заключается в том, чтобы пользователь загрузил SWF на свой локальный компьютер и запустил его (т. Е. Дважды щелкнув по нему в проводнике Windows, а не через http://localhost). Похоже, что когда это происходит, файл crossdomain.xml игнорируется.Возможно ли предотвратить загрузку локального SWF (AS3) с моего сайта?

Я понимаю, что в моем ActionScript, я могу это сделать:

if (Security.sandboxType.indexOf(Security.REMOTE) == -1) 
// running locally - don't allow 

Однако это невероятно легко для кого-то декомпилировать SWF и просто удалить эту строку.

Можно ли что-то сделать на стороне сервера, чтобы остановить локально запущенный SWF для загрузки с моего сайта? Я попытался проверить реферер, но это поле часто не заполняется. У кого-нибудь есть другие идеи?

Спасибо, Matt

ответ

2

Вы никогда не будете в состоянии полностью предотвратить загрузку с помощью crossdomain.xml. Если пользователь просто копирует и вставляет запрошенный URL-адрес ресурсу в пустое окно браузера, механизм перестает работать. Кроме того, механизм can be cheated by using a proxy. Все, что он делает, это немного поднять планку, особенно когда кто-то пытается использовать SWF-видеоплеер для потоковой передачи FLV-видео, размещенного на вашем сайте.

Если защита ваших ресурсов стоит усилий, вам следует рассмотреть возможность добавления своего рода механизма аутентификации/авторизации и/или шифрования.

+0

Хороший вопрос. Я был просто удивлен, потому что многие мысли явно вошли в файл crossdomain.xml, и поэтому я был удивлен, что его так легко обойти. – Matt

0

Двойной щелчок и запуск SWF обычно работают только при наличии автономного проигрывателя, иначе он откроется с браузером. Предоставляет ли Adobe автономный плеер вне Flash Pro? Они не привыкли, хотя при разработке Flash Platform Tools они могут сделать это сейчас.

Тем не менее, я ожидаю, что большинство пользователей не будет иметь автономного игрока. Что касается безопасности и защиты контента, я подозреваю, что вы фокусируетесь на неправильном.

+0

Не обязательно, если я загружаю SWF и дважды щелкаю по нему, он открывается в веб-браузере, но с URL-адресом файла: //, а не с URL-адресом http: //, и когда это происходит, файл crossdomain.xml игнорируется. – Matt

+0

@Matt интересный. Однако у меня нет никаких дополнительных комментариев. – JeffryHouser