1. Задавайте здесь вопросы о коде, которые не подходят в другие разделы, такие как:
    Дизайн > Верстка
    PHP > Как сделать на PHP
    Скрыть объявление

популярные дырки, допускаемые разработчиками

Тема в разделе "Web Coding", создана пользователем zaartix, 31 авг 2006.

Статус темы:
Закрыта.
Модераторы: latteo
  1. zaartix

    zaartix Постоялец

    Регистр.:
    15 май 2006
    Сообщения:
    73
    Симпатии:
    27
    Читал на одном из сайтов, посвященных безопасности, про sql-инъекции. Так вот там говорилось о том, что даже addslashes можно обойти. Если кто вкурсе как это сделать и как от этого защититься - напишите плз.
     
  2. Kokos_23

    Kokos_23 Прохожие

  3. morgan_spb

    morgan_spb Постоялец

    Регистр.:
    15 сен 2006
    Сообщения:
    55
    Симпатии:
    1
    интересно а у кого-нибудь есть готовый класс mysql с защитой от иньекции?

    пол сети обрыл ничего приличного не нашел
     
  4. Adeka

    Adeka Постоялец

    Регистр.:
    17 сен 2006
    Сообщения:
    126
    Симпатии:
    42
    На веб-хак форуме тоже можно всякой инфы найти . За ссылки спасиб.
     
  5. bueno

    bueno Читатель

    Заблокирован
    Регистр.:
    7 май 2007
    Сообщения:
    236
    Симпатии:
    69
    здесь основы более чем доходчево даны..
    http://phpfaq.ru/slashes
     
  6. tov_Me

    tov_Me Постоялец

    Регистр.:
    7 апр 2007
    Сообщения:
    93
    Симпатии:
    6
    А ссылку на этот сайт можно? лично я знаю, что если поступающие в запрос данные в кавычки не включаются, то стрипслешем ничего не решить. В противном случае он нормально работает.
     
  7. Nemesis

    Nemesis Прохожие

    Посмотри на это: hччp://damagelab.org/dlsecure/, может подойдёт :).
     
  8. keatlon

    keatlon Прохожие

    mysql_escape_string - слеширует все опасные символы, по поводу класса я бы посоветовал людям забыть такой стиль как

    mysql_query('SELECT * FROM users WHERE user_id ='.addslashes($userId);

    вам всегда надо помнить о наличии addslashes, помнить о том чтобы не заслешировать дважды и при этом всем никто не даст гаранти что гдето случайно, по ошибке забыл заюзать.

    Копайте параметризированные запросы, для PHP это PDO интерфейс (хотя можно написать и свой), если вкратце и схематично то запрос будет выглядет так

    $stmt = $dbh->prepare("SELECT * FROM users WHERE user_id = ?");
    $stmt->bindParam(1, $userId, PDO::pARAM_INT);
    $stmt->execute();

    теперь запрос безопасен вне зависимости от того что внутри $userId

    преимущества такого подхода очевидны
    - безопасное выполнение запросов
    - логгирование уникальных запросов проекта (так как теперь вместо параметров только плейсхолдеры)
    - лучшее восприятие запроса визуально
    - удобный контроль над параметрами (тип, длина)
    и другое..
     
  9. pita4ok

    pita4ok Создатель

    Регистр.:
    16 июн 2007
    Сообщения:
    18
    Симпатии:
    5
    При фильтрации параметров - нужно просто напросто понять какие значение будут передаваться и жестко фильтровать лишнее. Грубо говоря нужно действовать по правилу что не разрешено - запрещено.
     
Статус темы:
Закрыта.