Документ взят из кэша поисковой машины. Адрес
оригинального документа
: http://www.fds-net.ru/showflat.php?Number=8399642&src=arc&showlite=l
Дата изменения: Unknown Дата индексирования: Tue Feb 26 22:40:50 2013 Кодировка: Windows-1251 |
Technical
>> Development (Archive)
Страницы: 0 | (10) | 20 | показать все | ||
Eau : Re: Валидация ввода пользователя для предотвращения SQL-инъекций
[re:FMX] 28.02.2009 06:32 | Reply | Edit | | 18 | |
Тогда ОК! Если особый случай, то, наверное, можно оставить его открытым для инъекций! | ||
psa
[re:FMX] 28.02.2009 09:01 | Reply | Edit | | 3 | |
Quote: http://blog.moertel.com/articles/2006/10/18/a-type-based-sol... труъ шняга, правда, для типизованных языков ![]() | ||
Sevurrrra
[re:FMX] 28.02.2009 10:58 | Reply | Edit | | 1 | |
Проэкранируй все одинарные кавычки. Будет тебе счастье. | ||
nelapsi
[re:Sevurrrra] 28.02.2009 14:21 | Reply | Edit | | 1 | |
они вроде не экранируются, а на '' (две одинарных кавычки) заменяются | ||
blind
[re:FMX] 01.03.2009 11:47 | Reply | Edit | | 3 | |
нахрена? встроенные средства dbapi прекрасно все реализуют без дырявых велосипедов в духе пхп | ||
_Seti
[re:FMX] 02.03.2009 00:57 | Reply | Edit | | 0 | |
В SQLIte вроде бы нужно экранировать только одинарные кавычки. Вот так, например (код для дельфи)code: | ||
Druxa
[re:Minotaurus] 07.03.2009 10:43 | Reply | Edit | | -4 | |
> Такой способ теоретически является более правильным в теории все так, но в жизни бывает, что от пользовательских данных зависит например имя таблицы, в которую задается запрос или какие поля выбираются. так что ничего не поделаешь, приходится строить запрос на лету, и нужна функция, которая будет проверять вводимые данные на инъекции. и вряд ли такая функция будет в стандартной библиотеке, потому что способ проверки необычный, например code: | ||
alepar
[re:Druxa] 07.03.2009 10:57 | Reply | Edit | | 6 | |
Quote: имена таблиц и имена колонок надо брать не из юзеринпута, а из своих внутренних мапов после этого ты строишь запрос с вопросиками, и все как обычно не надо тут панику разводить | ||
Druxa
[re:alepar] 07.03.2009 12:34 | Reply | Edit | | -6 | |
> имена колонок надо брать не из юзеринпута, а из своих внутренних мапов а потом когда в таблице добавляется колонка, надо идти искать разработчика, чтобы он ее в этот свой внутренний мап добавил, пересобрал программу, поставил в тестинг, подождал денек, потом выкатил, в чем смысл :-\ неужели так сложно написать проверку, что имя колонки состоит только из букв цифр и подчерка... зато теоретически все правильно! | ||
krendel
[re:Druxa] 07.03.2009 12:38 | Reply | Edit | | 1 | |
В ответ на: а что - колонки свтой дух что-ли добавляет? если меняется БД, то вполне логично, что разработчик должен потом поучаствовать. или инженер БД будет отвечать за появившиеся баги? | ||
DarkGray
[re:Druxa] 07.03.2009 13:19 | Reply | Edit | | 3 | |
Quote: приведи, пожалуйста, реальный use case, когда имя колонки или таблицы вводится пользователем ps чтобы выбирался я еще могу придумать, но тогда как раз на сервере строится map, а пользователю передаются какие-то идентификаторы из map-а, а не реальные имена колонок/таблиц. | ||
comcon1
[re:DarkGray] 07.03.2009 15:26 | Reply | Edit | | 0 | |
Да "вводится" - это черезчур) | ||
_vj_
[re:DarkGray] 07.03.2009 15:56 | Reply | Edit | | -1 | |
Quote: когда ты хочешь оставить пользователю возможность вводить запросы руками, а ограничивать его встроенным генератором | ||
alepar
[re:Druxa] 07.03.2009 17:42 | Reply | Edit | | 2 | |
Так а смысл защищаться тогда от sql-инъекций, если ты пользователю и так позволяешь из произвольной таблицы заселектить произвольную колонку? Не хочется искать программиста - открываешь БД на чтение\запись всем, и вперед... | ||
Top |