[php] Новичкам: задаем вопросы

Discussion in 'PHP' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. Byrger

    Byrger Elder - Старейшина

    Joined:
    7 Mar 2008
    Messages:
    521
    Likes Received:
    26
    Reputations:
    -4
    Не прокатывает mb_detect_encoding
    Да, с других сайтов, но они выдают только строку без заголовков и тегов с объявлением кодировки. :confused:
     
  2. GAiN

    GAiN Elder - Старейшина

    Joined:
    2 Apr 2011
    Messages:
    2,550
    Likes Received:
    172
    Reputations:
    99
    нужно сделать счётчик в виде часов, с обратным отсчётом например до рождества итд.
    незнаю каким запросом искать, подскажите?
     
  3. GAiN

    GAiN Elder - Старейшина

    Joined:
    2 Apr 2011
    Messages:
    2,550
    Likes Received:
    172
    Reputations:
    99
    я не знаю какой запрос набрать, чтоб найти то что надо :(
     
  4. 0o Chris o0

    0o Chris o0 New Member

    Joined:
    16 Oct 2011
    Messages:
    142
    Likes Received:
    1
    Reputations:
    0
    PHP:
    <?php
    if(isset($_GET['img'])) {
      
    $a=$_GET['img'] . ".jpeg"; }
      else {
      die (
    "Image not found");
      }
      if(
    file_exists("$a")) {
       echo 
    "<img src='$a'>";
                        }
      else
      {
       die(
    '<b>This file is not exist</b>');
        }

    ?>
    Какие уязвимости могут быть в этом коде, и почему при $_GET['img'] = http://domain/img пишет This file is not exist?
     
    #19405 0o Chris o0, 21 Oct 2011
    Last edited: 21 Oct 2011
  5. randman

    randman Members of Antichat

    Joined:
    15 May 2010
    Messages:
    1,366
    Likes Received:
    610
    Reputations:
    1,101
    Кроме XSS в этом коде нет уязвимостей. При $_GET['img'] = http://domain/img пишет This file is not exist потому что файла, получившегося в конечной переменной не существует.
    Всё просто, узнаеш текущее microtime, microtime даты, сравниваешь, вычитаешь, преобразуешь в часы/минуты/секунды/годы и выводишь на экран.
     
    #19406 randman, 21 Oct 2011
    Last edited: 21 Oct 2011
  6. 0o Chris o0

    0o Chris o0 New Member

    Joined:
    16 Oct 2011
    Messages:
    142
    Likes Received:
    1
    Reputations:
    0
    Спасибо, а каким способом тут можно реализовать xss? У меня на все попытки все время выдает This file is not exist.
     
  7. Chrome~

    Chrome~ Elder - Старейшина

    Joined:
    13 Dec 2008
    Messages:
    936
    Likes Received:
    162
    Reputations:
    27
    Да, по сути, никаким.
     
  8. GAiN

    GAiN Elder - Старейшина

    Joined:
    2 Apr 2011
    Messages:
    2,550
    Likes Received:
    172
    Reputations:
    99
    можно ли текст в картинку выводить через php?
    например текст обновился - и обновлённый на странице не текстом отображается а картинкой ?
    и много ли это нагрузки даст хостеру?
     
  9. Chrome~

    Chrome~ Elder - Старейшина

    Joined:
    13 Dec 2008
    Messages:
    936
    Likes Received:
    162
    Reputations:
    27
    Можно.
    Тут скорее нужно смотреть в сторону JavaScript, если обновление происходит в реальном времени, и если картинки могут повторяться.
    Не должна создаваться большая нагрузка на хостинг, поскольку картинки могут кешироваться. Если же картинки обновляются очень часто и они всегда разные, - тогда все зависит от хостинга и от реализации.
     
    #19410 Chrome~, 21 Oct 2011
    Last edited: 21 Oct 2011
  10. randman

    randman Members of Antichat

    Joined:
    15 May 2010
    Messages:
    1,366
    Likes Received:
    610
    Reputations:
    1,101
    Ну это конечно же крайний случай, так как на некоторых серверах можно заливать файлы с произвольным именем:
    ./dir/'><script>alert('xss')</script>

    С учётом того, что файл ./dir/'><script>alert('xss')</script>.jpeg будет существовать. Правда может не прокатить при некоторых настройках сервера.
     
  11. 0o Chris o0

    0o Chris o0 New Member

    Joined:
    16 Oct 2011
    Messages:
    142
    Likes Received:
    1
    Reputations:
    0
    Спасибо.
     
  12. 0o Chris o0

    0o Chris o0 New Member

    Joined:
    16 Oct 2011
    Messages:
    142
    Likes Received:
    1
    Reputations:
    0
    Подскажите, пожалуйста, почему не работает скрипт:
    PHP:
    $curl curl_init();
    curl_setopt($curlCURLOPT_RETURNTRANSFER1);
    curl_setopt($curlCURLOPT_POST1);
    curl_setopt($curlCURLOPT_USERAGENT$useragent);
    curl_setopt($curlCURLOPT_URL$url);
    curl_setopt($curlCURLOPT_POSTFIELDS$data);
    $html curl_exec($curl);
    $separator ' '//Разделитель
    $html explode($separator$html); //Делим html на строки
    for($i=0$i++; $i<count($html)-1) {
    if (
    preg_match('/href="/photo'$html["$i"], $result)) {
    //проверяем есть ли вхождения 
    $new '';
    $old = array ('href="''">'
    $results["$i"] = str_replace($old$new$result); //удаляем все href=" и ">
    }
    }
    print_r($results);
     
    #19413 0o Chris o0, 22 Oct 2011
    Last edited: 22 Oct 2011
  13. Chrome~

    Chrome~ Elder - Старейшина

    Joined:
    13 Dec 2008
    Messages:
    936
    Likes Received:
    162
    Reputations:
    27
    Как минимум потому, что комментарии в PHP обозначаются не так /, а так //.
     
  14. 0o Chris o0

    0o Chris o0 New Member

    Joined:
    16 Oct 2011
    Messages:
    142
    Likes Received:
    1
    Reputations:
    0
    я добавил их, когда вставлял код сюда, сейчас поправлю.
     
  15. 0o Chris o0

    0o Chris o0 New Member

    Joined:
    16 Oct 2011
    Messages:
    142
    Likes Received:
    1
    Reputations:
    0
    Нашел 1 ошибку - заменил $result = preg_match('/href="/photo', $html["$i"])) на if (preg_match('/href="/photo', $html["$i"], $result)), так все-таки правильно. Но страница все равно пустая.
    PHP:
    $curl curl_init();
    curl_setopt($curlCURLOPT_RETURNTRANSFER1);
    curl_setopt($curlCURLOPT_POST1);
    curl_setopt($curlCURLOPT_USERAGENT$useragent);
    curl_setopt($curlCURLOPT_URL$url);
    curl_setopt($curlCURLOPT_POSTFIELDS$data);
    $html curl_exec($curl);
    $separator ' '//Разделитель
    $html explode($separator$html); //Делим html на строки
    for($i=0$i++; $i<count($html)-1) {
    if (
    preg_match('/href="/photo/'$html["$i"], $result)) {
    //проверяем есть ли вхождения 
    $new '';
    $old = array ('href="''">'
    $results["$i"] = str_replace($old$new$result); //удаляем все href=" и ">
    }
    }
    print_r($results);
     
    #19416 0o Chris o0, 22 Oct 2011
    Last edited: 22 Oct 2011
  16. Chrome~

    Chrome~ Elder - Старейшина

    Joined:
    13 Dec 2008
    Messages:
    936
    Likes Received:
    162
    Reputations:
    27
    Тут почти все неправильно.

    PHP:
    $separator ' '//Разделитель 
    $html explode($separator$html); //Делим html на строки
    Ты тут делишь текст не на строки, а на слова.
    PHP:
    preg_match('/href="/photo/'$html["$i"], $result)
    Регулярка составлена неправильно. Должно быть:
    PHP:
    preg_match('/href=\"\/photo/'$html["$i"], $result)
    И что это за извращение:
    PHP:
    $html["$i"]
    если можно записывать так:
    PHP:
    $html[$i]
    Эта строчка тоже какая то непонятная:
    PHP:
    $old = array ('href="''">'
     
    #19417 Chrome~, 22 Oct 2011
    Last edited: 22 Oct 2011
  17. 0o Chris o0

    0o Chris o0 New Member

    Joined:
    16 Oct 2011
    Messages:
    142
    Likes Received:
    1
    Reputations:
    0
    1. В каких то случаях получаются слова, а в каких то строки типа href="photo.
    2. Это по идее должны быть подстроки, которые мы ищем в $result и заменяем на $new; То есть 1 href=", а вторая ">
    . Спасибо, буду исправляться.
     
    #19418 0o Chris o0, 22 Oct 2011
    Last edited: 22 Oct 2011
  18. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Nightmarе safe_mode? Попробуйте error_reporting(E_ALL); и require()
     
    _________________________
  19. Doom123

    Doom123 Elder - Старейшина

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    а rquire что пишет?
     
Thread Status:
Not open for further replies.