Это не баг, это фича.
А леммингов, кидающихся вводить свой пароль в любое выскочившее окошко, ничто не спасет. Только обжигание на своих ошибках. Для особо одаренных — многократное обжигание.
Три варианта:
0. Отключить тег img для пользователей.
1. Армия модераторов, постоянно просматривающих все темы. Модераторов можно заменить скриптами, периодически запрашивающими картинки, вставленные через img.
2. Создание белого списка файлообменников (с которых разрешена подгрузка картинок в img). Плюс создание собственного хостинга jpg / png / gif.
реальным выглядит лишь вариант 2.
Но это все костыли и повязки, создающие стерильную среду для пользователя на конкретном ресурсе, что их еще больше расслабит и поможет фишерам поймать их на другом ресурсе.
Правильный путь — повышение грамотности пользователей, обучение азам использования Интернета, просвещение их на тему возможных уловок мошенников.
Грамотный пользователь или нет, но факт появления на странице окна авторизации (в большинстве случаев блокирующего работу со страницей) раздражает всех.
Вариант 2 обходится тоже довольно просто — на сервере кулхацкеров айпишники хостинг-провайдеров заносятся в список для 403-ей ошибки.
В итоге скрипты блокируются, а люди из домашних сетей — нет.
На free-lance.ru была такая проблема, насколько я понял.
Решается просто, как и на многих чатах: картинки, которые присутствуют в сообщении как <img … />, хостятся на самом free-lance.ru, путём аттача к сообщению. Видеофлешки принимаются только с крупных хостеров (ютуб, рутуб, вимео).
Переход на все внешние ссылки (включая чужие картинки) проходит через страницу выхода с уведомлением, типа: «Ахтунг, вы покидаете сайт фри-ланс.ру, осторожно, дальше может случиться трипер.» (опция отключается в настройках).
… Вариант 3: шлюз на Хабре для всех IMG. Принимает страницу на сервере. Если это рисунок, пропускает на публикацию, если html — выводит свой рисунок с текстом «Изображение недоступно». Чтобы не замедляло выдачу, делать это в отдельных процессах, запускаемых по .
Нагрузка? Новые уязвимости для сервера?
Например, придется проверять, что отдали картинку не больше какого-то размера, а то найдутся любители отгружать iso-шки :)
предположу что найдется довольно мало сайтов/скриптов защищеных от такого рода подставы. Если я правильно понимаю суть проблемы то это браузеры так обрабатывают ответы. Как вариант то что предложил юзер Hint, хотя вместо модераторов и скриптов которые время от времени что-то проверяют, я бы предложил, так как это форум расширить функциональность тэгов [img], если на форуме используется BB code в противном случае не знаю что еще придумать.
ЗЫ конечно же еще где-то нужно предупреждать пользователей что возможны такие казусы и чтоб они были внимательны
в добавок есть такая идея, но это больше относится к создателям браузеров.
Браузер должен в случае если запрос на авторизацию приходит с другого адреса будь то картинка на странице или еще что-то(на досуге проверю какие еще могут быть казусы) не выводить форму логина и пароля, а выводить просто сообщение указывая что точно и куда запрашивает авторизацию и пользователь уже пусть сам решает что с этим делать.
ЗЫ но это не должно блокировать работу страницы/браузера, скажем что-то на подобе оповещения о поп-ап окнах =)
Давать право на тег IMG (и ссылки?) только по достижении определенного рейтинга (кармы, числа постов) на ресурсе. Тогда злоумышленнику как минимум придется потратить немалое время\мозги на повышение авторитета или ломать существующие учетки для осуществления такого рода зловредства.
Большая нагрузка на сервер и канал. Это же придется перекачивать все картинки через свой сервер. Уж лучше открыть собственной картинкохранилище для нужд сайта, как на dirty.ru, например.
Подменяем ссылку на картинку через свой скрипт, типа blabla.com/img.php?img=оригинальная ссылка
скриптом проверяем ответ через HEAD запрос
если 200, то отправлем пользователю путь до оригинальной картинки через location
все просто, и не должно жрать много траффика.
Я же написал
>отправлем пользователю путь до оригинальной картинки через location
под «через location» я имею ввиду отправку http header location с оригинальной картинкой.
По идее там пишется зона аутентификации. Но кто ее читает? Тем более ее можно изменить.
Обязательно должен писаться домен, который на самом деле запрашивает авторизацию.
Можно блокировать авторизацию для img при наличии специального meta-тега или http-заголовка, чтобы сохранить совместимость со старыми сайтами (мало ли). Хотя это само собой костыли. Подобное изначально должно быть прописано в стандарте.
Помимо этого, там можно будет написать любой текст, вроде: «Введите ваши логин и пароль пароль и доступа к функционалу для зарегистрированных пользователей». Так что это далеко не спасение.
Я всегда делаю автоматический перезалив картинки на свой хост. Изначально, причиной стало то, что когда читаешь старую информацию, созданную пользователями — многие картинки уже мертвы. Т.е. берем все ссылки вне сайта в теге img и перезаливаем на наш сервер, соответственно заменив URL в теге. И если будет что-то кроме 200 OK — ничего не выйдет.
Блин! Зачем вы про это написали!?
Уже на двух форумах и одном несуществующем блоге мне выпало окошко с предложением ввести логин\пароль для доступа к закрытой части.
Я этого на хабре никогда не понимал, почему просто не качать картинки по URL и перекладывать на свой сервер. Трафик большой но в масштабах проекта копеечный, альтернативно кооперация с каким-то картиночным сервисом. А то картинки и сами дохнут, и под хабраэффектом мрут, если полезть в старые-старые посты там наверное всё уже умерло
Hint скинул в ПМ письмо с подобной ссылкой на картинку — там да, даже в опере диалог запроса логина и пароля появился.
Но что занятно — у нас на форуме народ тоже пытался так развлекаться — под оперой тишина, просто картинку не показывает и все. Пробовал ту же страницу форума открыть в IE8 — там да, сразу просьба ввести логин и пароль.
Так что и сложилось ложное впечатление что последняя опера этому не подвержена.
хм а подобное получить с помощью iframe получить нельзя? да и вообще можно ли использовать такой способ фишинга через iframe? соглашусь что данный вопрос несколько уже чем с использованием тэга img, но все таки =)
Если есть возможность вставить iframe, то почти наверняка есть возможность вставить что угодно (в том числе Javascript). А вот вставка картинок через img по умолчанию разрешена практически во всех форумах и системах комментариев.
Хмм. Разве что проксирование-и-сохранение картинок у себя при отправке поста.
Заодно как побочный эффект это защищает от подмены картинки после(помнится и на хабре такое бывало :) ).
Дабы не забивалось дискоместо, можно установить для картинки время жизни(достаточное для того, чтобы пост утратил актуальность, что сведет к минимуму кол-во успешных атак. Заодно сгладит последствия возможного падения картинкохостинга)
Или размещение картинок только у себя(что потребует больше дискоместа).
Или как предлагалось выше, продумывание системы репутации.
401 Unauthorized на службе зла