-=FILTRATION=-

Discussion in 'PHP' started by vorona, 21 Sep 2009.

  1. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,174
    Likes Received:
    1,157
    Reputations:
    202
    если до этого данные обрамлялись addslashes() то на выводе тоже нужно делать stripslashes(), это для Вороны заметка, иначе юзвер регнет ник O'Neal а отображаться будет как O\'Neal
     
  2. Qwazar

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

    Joined:
    2 Jun 2005
    Messages:
    989
    Likes Received:
    904
    Reputations:
    587
    Дык вообще массово данные никак обрамлять не надо, тогда и проблем не будет. Экранировать надо только непосредственно в запросе.
     
  3. vorona

    vorona Member

    Joined:
    7 Sep 2009
    Messages:
    392
    Likes Received:
    7
    Reputations:
    1
    а что, htmlspecialchars нельзя применять перед записью в файл?
     
  4. L I G A

    L I G A Banned

    Joined:
    27 Jul 2008
    Messages:
    482
    Likes Received:
    380
    Reputations:
    49
    зачем искажать данные?
     
  5. vorona

    vorona Member

    Joined:
    7 Sep 2009
    Messages:
    392
    Likes Received:
    7
    Reputations:
    1
    ну разницы ж то никакой. искажишь ты их до записи или после.
     
  6. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,174
    Likes Received:
    1,157
    Reputations:
    202
    Ты ничего не понял, никто их не искажает, просто при выводе в браузер нада заменить HTML тэга на аналоги, чтоб небыло XSS или ифреймов к примеру, а при записи в файл фильтровать незачем. При записи в БД нужно обрамлять ковычки, дабы небыло подзапросов, к примеру есть форма для ввода логина и пароля которая не фильтруется, пример:
    В таком случае можно будет ввести логин: 1' OR 1=1 1 и любое значение в пароль, и авторизация будет успешной, поетому в таких местах стоит экранировать ковычки функцией addslashes();

    ЗЫ в примере могут быть ошибки, пишу как говорится "с коленки" но смысл думаю понятен.
     
  7. vorona

    vorona Member

    Joined:
    7 Sep 2009
    Messages:
    392
    Likes Received:
    7
    Reputations:
    1
    понял. спс.

    и ещётакой вопросик:
    как с помощью цыкла пройти по всем ГЕТ или ПОСТ запросам, которые поступили в скрипт?
     
  8. vorona

    vorona Member

    Joined:
    7 Sep 2009
    Messages:
    392
    Likes Received:
    7
    Reputations:
    1
    и такой:
    какую форму, кроме \0 может принимать нулевой байт в пхп?
     
  9. d_x

    d_x Banned

    Joined:
    25 Mar 2008
    Messages:
    558
    Likes Received:
    650
    Reputations:
    210
    Например, так:
    PHP:
    foreach($_GET as $key => $value)
    {
      
    $_GET[$key] = что_то_делаем($value);
    }
    Аналогично с $_POST, $_COOKIE.

    А нулевой байт он везде нулевой байт. chr(0).
     
    #29 d_x, 25 Sep 2009
    Last edited: 25 Sep 2009
  10. vorona

    vorona Member

    Joined:
    7 Sep 2009
    Messages:
    392
    Likes Received:
    7
    Reputations:
    1
    Спасибо!
     
  11. vorona

    vorona Member

    Joined:
    7 Sep 2009
    Messages:
    392
    Likes Received:
    7
    Reputations:
    1
    кодировка спец символов в %hex как-то защищает?
     
  12. L I G A

    L I G A Banned

    Joined:
    27 Jul 2008
    Messages:
    482
    Likes Received:
    380
    Reputations:
    49
    разница есть.
    К примеру ты захотел заменить все <,>, ' etc...
    но нифига не выйдет потому как в файле будет вместо <,>- &lt;&gt;
     
    4 people like this.
  13. vorona

    vorona Member

    Joined:
    7 Sep 2009
    Messages:
    392
    Likes Received:
    7
    Reputations:
    1
    ясн
     
  14. vorona

    vorona Member

    Joined:
    7 Sep 2009
    Messages:
    392
    Likes Received:
    7
    Reputations:
    1
    ???
     
  15. vorona

    vorona Member

    Joined:
    7 Sep 2009
    Messages:
    392
    Likes Received:
    7
    Reputations:
    1
    защищает?
     
  16. Doom123

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

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    d_x Оо а array_map на что ? ...

    ТС не парься при выведе на страницу делай htmlspecialchars();

    а при вставкев sql запрос делай чтото типо

    $query = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",
    mysql_real_escape_string($user),
    mysql_real_escape_string($password));

    и всё будет отлично ... не будь параноиком ...
     
    #36 Doom123, 27 Sep 2009
    Last edited: 27 Sep 2009
    2 people like this.
  17. vorona

    vorona Member

    Joined:
    7 Sep 2009
    Messages:
    392
    Likes Received:
    7
    Reputations:
    1
    ну лишняя защита не помешает = )
     
  18. vorona

    vorona Member

    Joined:
    7 Sep 2009
    Messages:
    392
    Likes Received:
    7
    Reputations:
    1
    ?&
     
  19. vorona

    vorona Member

    Joined:
    7 Sep 2009
    Messages:
    392
    Likes Received:
    7
    Reputations:
    1
    ну ответтьте пжлст
     
  20. gisTy

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

    Joined:
    24 May 2008
    Messages:
    432
    Likes Received:
    160
    Reputations:
    27
    защищает от чего?