Могут ли пользователи / боты спамить исполнением mp3-файлов и тратить трафик?

Привет, ребята, в настоящее время я представляю свои mp3-файлы, ссылаясь на их расположение во флеш-проигрывателе для пользователей. Могут ли пользователи / боты заходить на ваш сайт и каким-то образом непрерывно исполнять mp3 и уменьшать пропускную способность? Если да, то как это предотвратить? (Программирую на php). Заранее благодарю за любой совет.


person Scarface    schedule 07.04.2010    source источник


Ответы (4)


Это ответ очень высокого уровня, так как я не знаком с особенностями того, что вы делаете, но на самом деле ничего не мешает боту постоянно запрашивать файл, если он может каким-то образом определить, где он хранится в сервер (URL). Как предлагает Игнасио, есть некоторые вещи, которые вы можете сделать в источнике swf, чтобы убедиться, что он не будет постоянно запрашивать файл, но если они могут найти местоположение файла на сервере, они могут обойти swf все вместе. Я бы посоветовал создать какую-то страницу шлюза (на php), которая проверяет, был ли запрошенный файл запрошен клиентом (возможно, IP-адрес *) за последние X минут. Если проверка прошла успешно, то скрипт php может обрабатывать поток данных для клиента, если нет, то он отклонит запрос и не предоставит доступ к данным. Тем не менее, вы по-прежнему уязвимы в том случае, если они могут определить фактическое местоположение файла. Вы, вероятно, захотите настроить какое-то правило сервера для пересылки всех запросов, заканчивающихся на .mp3, в файл шлюза, чтобы предотвратить прямой доступ.

* Следует отметить, что если вы собираетесь внедрить какую-то проверку скорости, вам нужно быть очень осторожным с тем, как вы это делаете. Сам по себе IP недостаточно хорош, потому что что, если у вас есть группа пользователей за одним и тем же NAT-шлюзом (например, в корпорации) и, несмотря на то, что на самом деле существует 20 уникальных пользователей, запрашивающих один и тот же файл, запросы на самом деле только приходят с одного IP-адреса. В идеале вы можете использовать некоторую комбинацию данных пользовательского агента вместе с IP-адресом или, возможно, некоторой информацией о сеансе.

Надеюсь это поможет!

person Chris Thompson    schedule 07.04.2010
comment
Спасибо, Крис, это был очень информативный и полезный комментарий, очень признателен. Когда вы говорите об использовании страницы шлюза, есть ли у вас идеи, как это будет работать. Например, если я ссылаюсь на страницу шлюза в моем флеш-плеере, действительно ли он получит доступ к этой странице? - person Scarface; 07.04.2010
comment
Рад, что это было полезно! Посмотрите третий пост (автор rogem002) на этой странице webmaster-talk.com/php-forum/ ОП задал аналогичный вопрос (хотя и с другой мотивацией). Обратите внимание, что первый ответ (второй общий пост), который ссылается на параметры на основе javascript, не будет работать, потому что бот все это обойдет. - person Chris Thompson; 07.04.2010
comment
Еще раз спасибо, Крис. Я нашел это, что кажется достаточным и в основном делает все, что вы предлагали. Я просмотрел ветку, которую вы предложили, и она стала действительно сложной, лол, плюс они упомянули некоторые проблемы, решения которых я не знал. Проверьте это, скажите мне, что вы думаете codewalkers.com/c/a/Miscellaneous/ - person Scarface; 07.04.2010
comment
также вы бы порекомендовали сделать те же шаги для показа изображений - person Scarface; 07.04.2010
comment
Описание по этой ссылке более или менее точно то, что вам нужно. Шаги, которые вы предпримете, будут зависеть только от уровня безопасности, который вы хотите обеспечить. Та же идея будет работать для обслуживания изображений, хотя шаги, необходимые для отображения изображения, будут немного отличаться от примера swf (очевидно :-)) - person Chris Thompson; 07.04.2010
comment
Спасибо, Крис, за уделенное время. Я всегда ценю тех, кто следит за мной и отвечает на мои глупые вопросы. Это помогает мне хорошо понимать, что я делаю потом. Еще раз спасибо. - person Scarface; 07.04.2010
comment
Без проблем! Я рада помочь. Ваши вопросы были далеко не глупыми. Все мы должны с чего-то начинать, и то, что вы делаете, безусловно, нетривиально. Удачи! - person Chris Thompson; 07.04.2010

Я полагаю, что если флеш-плеер загружает mp3 с вашего сервера, то есть способ скачать mp3 файлы с вашего сервера.

Это означает, что, зная их URL-адреса, боты (или даже настоящие пользователи) могут их загрузить.

Учитывая, что тот, кто слушает музыку с помощью вашего плеера, не должен загружать более одного mp3-файла каждые 3 минуты или около того (ну, не должно идти быстрее музыки ^^), вы можете добавить проверки на месте, например:

  • не позволять загружать более X файлов mp3 за N минут - например, более 5 файлов mp3 за 3 минуты - это нечетно
  • не разрешать загрузку с более чем заданной скоростью (например, 3 МБ / мин, вероятно, намного больше, чем нужно вашему пользователю)
  • не разрешать одному загружать более 2 или 3 mp3 файлов одновременно (маловероятно, что кто-то будет слушать несколько песен одновременно ^^)
person Pascal MARTIN    schedule 07.04.2010
comment
Я транслирую свои mp3 в плеере на каждой странице пользователя. Как бы вы могли реализовать эти проверки в php? - person Scarface; 07.04.2010
comment
@Scarface: Ты бы не стал. Вы бы сделали это на самом сервере. - person Ignacio Vazquez-Abrams; 07.04.2010
comment
Я вроде как новичок в администрировании своего сервера прямо сейчас, так как я довольно новый разработчик, и у меня не было много времени на самообразование. Вы каким-то образом изменяете файл htaccess для этого? - person Scarface; 07.04.2010
comment
Ограничение пропускной способности, вероятно, может быть выполнено на уровне сервера ;;; для ограничения количества файлов в минуту вам, вероятно, придется что-то кодировать; есть возможность, чтобы ваш mp3-контент обслуживался сценарием PHP, что означало бы, что вам разрешено реализовывать такого рода проверки, регистрировать то, к чему осуществляется доступ, ... - person Pascal MARTIN; 07.04.2010
comment
это то, что я сделаю, спасибо Паскалю, но для ограничения пропускной способности, это сделано в htaccess? - person Scarface; 07.04.2010
comment
Я не думаю, что это будет так просто: черт возьми, в Apache по умолчанию нет ограничения пропускной способности - а это значит, что вам, возможно, придется поиграть с некоторыми модулями, такими как mod_bw или mod_bandwidth - person Pascal MARTIN; 07.04.2010

Если ваш Flash-плеер (разумно) не кэширует MP3-файлы на стороне клиента, я бы сказал, что пора найти новый плеер ...

person Ignacio Vazquez-Abrams    schedule 07.04.2010
comment
что вы подразумеваете под кешем на стороне клиента? Вы имеете в виду, что после загрузки mp3 становится частью памяти вашего браузера и не требует дальнейшей загрузки? - person Scarface; 07.04.2010
comment
Я использую отличный плеер, есть ли у вас другие полезные игры? - person Scarface; 07.04.2010

Да, это вполне возможно для бота.

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

person JSBձոգչ    schedule 07.04.2010
comment
Как сделать что-то подобное на php? - person Scarface; 07.04.2010
comment
РЕДАКТИРОВАТЬ: как это сделать с помощью конфигурации сервера. - person Scarface; 07.04.2010