horseman > 10-02-2007 14:45:04 |
Доброго времени суток всем! Есть у меня форма для закачки картинок на сервер. Она состоит из инпута и имаджа: Я хочу чтобы при выборе картинки она показывалась пользователю предпросмотром: Этот код без проблем отрабатывает в ИЕ, но в ФФ изображение на появляется. Подсткажите плиз в чем может быть проблема? |
stoneflash > 10-02-2007 15:04:24 |
Надо setAttribute("src", "file://"+document.getElementById("pict").value+"");
Фокс же так файлы с винта открывает. |
Yan > 10-02-2007 16:28:05 |
horseman Этот трюк на сервере работать не будет, т.к. политика безопасности запрещает web-страницам загружать локальные ресурсы. |
stoneflash > 10-02-2007 17:50:56 |
Yan Безопасности Лисы или Вообще? |
Yan > 10-02-2007 20:44:41 |
stoneflash Вообще. Возможность загружать локальные картинки -- дыра в безопасности, которая может позволить сайтам собирать информацию о ПО, установленном у пользователя, и т.п. Любой нормальный браузер этого не позволит. Я не проверял, но более чем уверен, что IE этого тоже не позволяет. |
horseman > 11-02-2007 01:51:42 |
Yan пишетЭтот трюк на сервере работать не будет, т.к. политика безопасности запрещает web-страницам загружать локальные ресурсы.
При чем здесь сервер? Скрипт по-определению отрабатывается на клиенте а не на сервере. На сервер данные передаются только в виде posto'v geto'v Yan пишетВообще. Возможность загружать локальные картинки -- дыра в безопасности, которая может позволить сайтам собирать информацию о ПО, установленном у пользователя, и т.п. Любой нормальный браузер этого не позволит. Я не проверял, но более чем уверен, что IE этого тоже не позволяет.
Посмотрите на аватар stoneflash"а откуда-то он взялся на сайте...? Его именно загрузили на сервер посредством клиента, наверняка того же самого лиса. А в том, что это работает на ИЕ- можете убедится сами- весь необходимый код я привел. Так шо сорри, но это все |
Anton > 11-02-2007 02:38:59 |
horseman пишетYan пишетЭтот трюк на сервере работать не будет, т.к. политика безопасности запрещает web-страницам загружать локальные ресурсы.
При чем здесь сервер?...
Имеется в виду, это не будет работать, когда страница будет отсылаться с сервера. Работать будет только с localhost. Yan пишет...не проверял, но более чем уверен, что IE этого тоже не позволяет.
Я проверил на denwer'е, позволяет. (отображает, по крайней мере картинку). |
INFOMAN > 11-02-2007 02:39:38 |
Обрабатываются-то они на клиенте, но если странице, открытой с веба, позволить загружать локальный контент, то она сможет легко залить на сервер любую инфу без ведома пользователя. Тебе бы понравилось, если бы у тебя веб-сайт украл все пароли? |
Yan > 11-02-2007 03:45:23 |
Anton Я проверил на denwer'е, позволяет. (отображает, по крайней мере картинку).
Мда, по поводу любого нормального браузера я погорячился. Сейчас пишу из Firefox 0.8, в нём этот баг также присутствует. INFOMAN Ну, пароли-то через эту дырку не вытащить, но узнать некоторую информацию о системе пользователя вполне возможно. horseman Для примера состряпал страничку, которая грузя локальные картинки, пытается определить установленное у пользователя в C:/Program Files/ ПО: http://xsms.nm.ru/temp/ie/local_images_detecting/ (К сожалению, я выбрал не самые популярные программы, у Вас их может и не быть, но смысл должен быть понятным). В ИЕ работает даже с web-сайта (из-за дыры), в Firefox 1.5 и Опера9 только с локалхоста. |
stoneflash > 11-02-2007 04:09:42 |
Yan Для примера состряпал страничку, которая грузя локальные картинки, п
Это ли не доказывает, что вышеупомянутый скрипт будет работать? |
Yan > 11-02-2007 04:44:38 |
stoneflash Только в IE: Yan пишетВ ИЕ работает даже с web-сайта (из-за дыры), в Firefox 1.5 и Опера9 только с локалхоста.
Кстати, надо бы в IE7 ещё проверить, быть может там эту возможность уже прикрыли. |
Al_H > 11-02-2007 05:22:52 |
При чем здесь сервер? Скрипт по-определению отрабатывается на клиенте а не на сервере. На сервер данные передаются только в виде posto'v geto'v
Скрипт грузится с сервера и отрабатывает на клиенте. Если он получит доступ к компьютеру клиента, отправить обратно данные не составит труда, например, через JavaScript через get-запрос, сменив адрес картинки на странице, или документа во фрейме. |
horseman > 12-02-2007 12:24:59 |
INFOMAN пишетОбрабатываются-то они на клиенте, но если странице, открытой с веба, позволить загружать локальный контент, то она сможет легко залить на сервер любую инфу без ведома пользователя. Тебе бы понравилось, если бы у тебя веб-сайт украл все пароли?
Украсть пароли с функциональностью языка Javascript можно разве что если их хранят в текстовом файле с именем "маи пароли.txt" на рабочем столе... 2Yan: Не могу понять логики твоих постов... То ты говоришь что это невозможно потому что безопасность, то приводишь скрипт, который должен доказывать обратное... ЗЫ По-поводу http://xsms.nm.ru/temp/ie/local_images_detecting/. Всеми моими браузерами как с локала, так и с сайта он сказал, что нет у меня ничего из этого софта, даже опры, которой я щас пишу. stoneflash пишетsetAttribute("src", "file://"+document.getElementById("pict").value+"");
Спасибо за мысль, такой код работает: Но, только с локала. Ладно, буду думать дальше. Добавлено Пнд 12 Фев 2007 12:52:13 : Есть предположение, что может помочь установка дополнительных привелегий, в часности: Но если с локала браузер запрашивает разрешить эти привелегии или нет, но с сервера скрипт отваливается с ошибкой: uncaught exception: A script from "http://ХХХХХХХХХХХ" was denied UniversalFileRead privileges.
Мож есть какие настройки безопасности лисы, о каких я не знаю, что-нить типа безопасных узлов ИЕ? |
Anton > 12-02-2007 14:58:05 |
с сервера скрипт отваливается с ошибкой
Неподписанный, наверное, вот и отваливается. такой код работает...Но, только с локала...
В опере и с локала не работает. horseman, зачем так изощрённо ограничивать круг потенциальных пользователей ресурса ? post-get, и будет работать везде. ЗЫ По-поводу http://xsms.nm.ru/temp/ie/local_images_detecting/. Всеми моими браузерами как с локала, так и с сайта он сказал, что нет у меня ничего из этого софта, даже опры, которой я щас пишу.
horseman, а почему он так сказал ? |
horseman > 12-02-2007 15:39:35 |
Неподписанный, наверное, вот и отваливается.
А можно чуть подробнее про эту подпись... В опере и с локала не работает. horseman, зачем так изощрённо ограничивать круг потенциальных пользователей ресурса ? post-get, и будет работать везде.
Блин, опра использует свой префикс при открытии имаджей file://localhost ... Возможно я дейстительно ставлю заплатки на заплатки, но раньше оно так работало, а начать обьяснять опять юзверям, шо теперь вы должны нажать сначала сюда, увидеть сюда и т.п.- это лишний раз не хоцца. Лучше шоб изменения проходили в бекгранде от них. Ну, если в ближайшее время не найду решения- так и поступлю. horseman, а почему он так сказал ?
ХЗ это уж к автору скрипта. Я особо не вникал. |
Yan > 12-02-2007 16:23:39 |
horseman 2Yan: Не могу понять логики твоих постов... То ты говоришь что это невозможно потому что безопасность, то приводишь скрипт, который должен доказывать обратное...
Логика проста. Я знал, что в Firefox и Опера из соображений безопасности web-страницы не имеют права загружать локальные картинки, и по ошибке распространил то же правило на IE. Когда же выяснилось, что IE, по крайней мере шестой, всё таки это позволяет, написал скрипт, показывающий потенциальную опасность загрузки локальных картинок. ЗЫ По-поводу http://xsms.nm.ru/temp/ie/local_images_detecting/. Всеми моими браузерами как с локала, так и с сайта он сказал, что нет у меня ничего из этого софта, даже опры, которой я щас пишу.
Смысл скрипта: - загрузить локальную картинку, например, file:///C:/Program Files/Opera/styles/images/opera.png; - если размеры картинки больше нуля, значит, у пользователя по этому адресу находится данная картинка, следовательно можно сделать вывод, что установлена Опера; Браузер делиться такой информацией не должен. |
Anton > 13-02-2007 17:23:03 |
чуть подробнее про эту подпись...
там. Хотя, это было лишь предположение. начать обьяснять опять юзверям, шо теперь вы должны нажать сначала сюда, увидеть сюда
Мож есть какие настройки безопасности лисы
И в чём будет разница ? ХЗ это уж к автору скрипта. Я особо не вникал.
Жаль, предположение оправдалось. Иными словами, момент ещё не настал ? |