Кстати, да!

Короткие полезные советы,
основанные на личном жизненном опыте,
иногда печальном.

Войдите

или зарегистрируйтесь!

Это вам пригодится, когда вы решите поделиться с нами советом, проголосовать за совет или оставить комментарий. И заодно пропадёт этот надоедливый текст!

Например, огнетушитель

Ищите штатные функции, автоматически исключающие SQL-инъекции. +16+19/-3, 33 прочитавших

Программируете что-либо с использованием SQL? Не забудьте про риск SQL-инъекции.

http://www.xkcd.ru/327/

Скорее всего, в СУБД-библиотеке уже есть функции, автоматически заменяющие спецсимволы в строках на соответствующие подстановки. Например, bind в SqLite, TQuery.Params в Delphi… Найдите их и используйте!

Написал Mercury13 больше двух лет назад, 31 января 2010 в 03:32
Код для вставки в блог Ой, нет, я лучше руками
×

Получится вот так
...


Комментарии (6)

  1.   1
    Поставил Mercury13 31 января 2010 в 03:32¤
  2.   1

    Тег SQL

    Поставил kstatida.ru 31 января 2010 в 12:22¤
  3.   2

    mysql_real_escape_string, $adodb->qstr(?)

    Написал salemem 31 января 2010 в 13:41¤
  4.   2

    кстати, bind и D.Params никакого отошения к экранированию неимеют

    Написал salemem 31 января 2010 в 13:58¤
  5.   -1

    Они мало того что экранируют — так ещё параметры подставляют прямо в запрос. bind на место вопросительных знаков, TQuery.Params — а не помню, какие там символы подстановки. Вообще клад для проггера!

    Написал Mercury13 4 февраля 2010 в 04:14¤
  6.   2

    Объяснение только какое-то странное. Sqlite, Delphi — совсем разные вещи же, движок баз данных и язык программирования.

    Написала lightalloy 31 января 2010 в 14:14¤
  7.   0

    Ну… есть же в Дельфи штатная БД-библиотека!

    Написал Mercury13 1 февраля 2010 в 10:42¤
  8.   -4
    Написал papa2005 1 февраля 2010 в 12:33¤

Незарегистрированные пользователи не могут оставлять комментарии.
Хотите зарегистрироваться? ?