|

Hacker's PHP
Xakep, номер #043, стр. 043-046-2
$i++;
if($i==$b)
{
echo "Отправлено $i писем! Перезапуск скрипта... please wait... <script>location='mail_flood.php?i=$i&'</script>";
}}}
?>
Как несложно заметить, скрипт посылает 10 различных(!) писем, затем перезапускается, посылает еще 10 писем, перезапускается и так далее.
Этот геморрой с перезапуском скрипта придуман по причине ограничения времени выполнения сценария web-сервером. Поскольку количество отведенных скрипту секунд на всех серверах разное (на платных хостингах больше, на халявных меньше), советую тебе поиграть со значением переменной nn - выставить ее поменьше, если выполнение скрипта прерывается и он не успевает отослать нужное количество писем. mail_flood.php - это имя, с которым ты сохранишь на сервере скрипт.
Spaming
Спам - вирус XXI века ;). Причем люди (так уж они устроены...) сердятся лишь на виртуальное его проявление - ту же "Экстру М" все с радостью берут :).
Но, ей богу, неприятно обнаружить, что за ночь в ящик накапало 79 тридцатикилобайтовых писем с предложением "Зарабатывать по $10000 в месяц".
Но спам как средство раскрутки сайта стоит не на последнем месте, да и, потом, можно подумать над мирным применением моего скрипта - например, создавать собственные рассылки, не используя оборзевший subscribe.ru. Как бы то ни было, если производить рассылку писем, то с сервака:
<?
$emails=file(spamlist.txt);
$c=count($emails);
if(!isset($i))
{
$i=1;
}
$b=$i;
$b+=9;
while($i<=$c && $i<=$b)
{
mail("$emails[$i]", "Спам", "Йо! Посетите мой мегакульный сайт: www.yo.ru");
if($i==$b)
{
echo "<script>location='script.php?i=$i'</script>";
}
}
?>
Сливаем файлы
Иногда бывает необходимо закачать какой-нибудь большой (или не очень) файл на сайт с другого сервера. Можно, конечно, сперва слить его к себе на комп, а потом upload'ить на сайт по FTP, но в этом случае ты дважды(!) перекачиваешь одну и ту же информацию, что довольно глупо, ведь можно заставить сам сервер скачать нужный тебе файл - без участия твоего компа как такового. Тема заезжена perl-вариантами, а я расскажу, как это делается на PHP:
<?
$socket = fsockopen("127.0.0.1", 80); //коннект
fputs($socket,"GET /cd/1.exe HTTP/1.0\nHOST: cd\n\n"); //запрос
while(fgets($socket,31337)!="\r\n" && !feof($socket)){
unset($buffer); } //отбрасываем заголовок
while(!feof($socket)) $buffer.=fread($socket, 1024); //читаем в переменную файл порциями по 1024 байт
$file_size=strlen($buffer); //считаем длину получившейся строки, т.е. файла
$f=fopen("download.exe","wb+");//собственно, пишем в файл
fwrite($f, $buffer, $file_size);
echo "Size of downloaded file: $file_size<b><br><br>"; //вывод результата
?>
Кстати, часто в локальных сетях в виде бонуса дают бесплатный трафик с провайдерскими pop3 и smtp серверами, а значит имеет смысл при помощи PHP скачивать файл и посылать его на мыло, трафик с которым не учитывается. Таким образом можно получить возможность на халяву качать мегатонные файлы! Правда, в этом случае можно здорово получить по шее от админа сетки, которому, в свою очередь, сильно влетит от начальства за безумный mail-трафик ;). Но еcли сложности тебя не пугают (7 раз подумай, а потом подумай еще раз ;)), то, так уж и быть, расскажу, как прикреплять к письму файлы средствами PHP.
Назад на стр. 043-046-1 Содержание Вперед на стр. 043-046-3
|