Главная страница


ru.cgi.perl

 
 - RU.CGI.PERL ------------------------------------------------------------------
 From : Alexey Gradovtsev                    2:5020/400     18 Aug 2004  15:19:23
 To : Justin Finch-Fletchley
 Subject : Динамическое построение таблиц
 -------------------------------------------------------------------------------- 
 
 Wed Aug 18 2004 13:56, Justin Finch-Fletchley wrote to Alexey Gradovtsev:
 
  AG>> Все это само собой разумеется. И называется SQL-инъекция. И для этого
  AG>> существует $dbh->quote().
  AG>> А так я еще многого не написал в этом отрывке.
  JFF> В данном случае тебе один $dbh->quote() может и не помочь. Хотя
  JFF> полностью не знаю, чего он кодирует, чего нет, но ; - вряд ли.. Hу тут
  JFF> смотреть нада, как он работает, но кавычки тут совсем не обязательны...
  JFF> Уж если генерировать sql запрос, то нада смотреть - правильно ли он
  JFF> генерируется.
 
 А и не надо кодировать (вернее, ескейпить) ; - это нормальный символ для
 текстовой строки. Hадо исключить спецсимволы (', ", \). Это убережет от самой
 возможности SQL-инъекции. Т.е. левых данных, подставляемых кульхацкерами
 вместо того, что ты ожидаешь получить. 
 
 Пример.
 $query = "UPDATE usertable SET pwd='$pwd' WHERE uid='$uid';";
 Если $uid такой: ' or uid like'%admin%'; --
 то при $pwd == 'hehehe' запрос станет таким:
 $query = "UPDATE usertable SET pwd='hehehe' WHERE uid='' or uid like
 '%admin%'; --'";
 (все что после -- является комментарием и не рассматривается)
 А замена ' на \' сделает запрос безопасным:
 $query = "UPDATE usertable SET pwd='hehehe' WHERE uid='\' or uid like
 \'%admin%\'; --'";
 (т.е. в базе будет искаться строка: ' or uid like'%admin%'; --)
 
 quote
 Quote a string literal for use as a literal value in an SQL statement, by
 escaping any special characters (such as quotation marks) contained within the
 string and adding the required type of outer quotation marks.
 
 Впрочем, ескейпинг защитит не только от инъекции, но и от элементарных ошибок
 в данных. Случайно затесавшийся символ кавычки ', если его не ескейпить в \',
 приведет к ошибке в SQL-запросе.
 
 А подробно про SQL-инъекции читай здесь:
 http://www.php.net/manual/ru/security.database.php
 
 Digitally yours, Alexey.
 
 --- ifmail v.2.15dev5.3
  * Origin: FidoNet Online - http://www.fido-online.com (2:5020/400)
 
 

Вернуться к списку тем, сортированных по:

 Тема:    Автор:    Дата:  
 Динамическое построение таблиц   Melekhov Alexandre A.   17 Aug 2004 18:33:00 
 Динамическое построение таблиц   Alexey Gradovtsev   17 Aug 2004 19:20:57 
 Динамическое построение таблиц   Serge Chervjakov   17 Aug 2004 19:55:17 
 Динамическое построение таблиц   Alexey Gradovtsev   18 Aug 2004 10:56:08 
 Динамическое построение таблиц   Justin Finch-Fletchley   18 Aug 2004 13:56:24 
 Динамическое построение таблиц   Alexey Gradovtsev   18 Aug 2004 15:19:23 
 Динамическое построение таблиц   Ivan Frolcov   18 Aug 2004 16:02:47 
 Динамическое построение таблиц   Alexey Gradovtsev   18 Aug 2004 16:38:17 
 Динамическое построение таблиц   Ivan Frolcov   18 Aug 2004 17:55:56 
 Динамическое построение таблиц   Alexey Gradovtsev   18 Aug 2004 18:08:50 
 Re: Динамическое построение таблиц   Artem Chuprina   18 Aug 2004 16:31:16 
 Re: Динамическое построение таблиц   Alexey Gradovtsev   18 Aug 2004 16:40:48 
 Re: Динамическое построение таблиц   Alexey Gradovtsev   18 Aug 2004 16:54:51 
 Re: Динамическое построение таблиц   Serge Chervjakov   18 Aug 2004 17:11:39 
 Re: Динамическое построение таблиц   Alexey Gradovtsev   18 Aug 2004 17:37:19 
 Re: Динамическое построение таблиц   Artem Chuprina   18 Aug 2004 17:16:01 
 Re: Динамическое построение таблиц   Alexey Gradovtsev   18 Aug 2004 18:05:17 
 Re: Динамическое построение таблиц   Artem Chuprina   18 Aug 2004 19:10:20 
 Динамическое построение таблиц   Alexey Gradovtsev   19 Aug 2004 00:53:26 
 Re: Динамическое построение таблиц   Artem Chuprina   19 Aug 2004 13:18:45 
 Re: Динамическое построение таблиц   Alexey Gradovtsev   19 Aug 2004 16:24:24 
 Re: Динамическое построение таблиц   Victor Wagner   18 Aug 2004 19:49:04 
 Динамическое построение таблиц   Serge Chervjakov   17 Aug 2004 19:41:35 
 Re: Динамическое построение таблиц   Melekhov Alexandre A.   18 Aug 2004 19:59:52 
 Re: Динамическое построение таблиц   Serge Chervjakov   18 Aug 2004 22:57:24 
 Re: Динамическое построение таблиц   Artem Chuprina   17 Aug 2004 19:54:17 
Архивное /ru.cgi.perl/16679df8600dd.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional