|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Yury Yurevich 2:5020/400 02 Mar 2005 08:43:51 To : Alex Zaitsev Subject : Re: Кавычки в тексте... :( -------------------------------------------------------------------------------- Alex Zaitsev пишет: ... > Т.е. в данном случае в $text было > Let's so wrong Mikey... > кавычка из которого и послужила "палкой в колесо"... Дыра для классического SQL injection. > > Подскажите, плз, как обойти енти баги? Экранировать символы ' " -- ; Пару примеров от Stas Bekman (http://perl.apache.org/docs/1.0/guide/code/My-DB.pm): # Quote the list of parameters. Parameters consisting entirely of # digits (i.e. integers) are unquoted. # print sql_quote("one",2,"three"); => 'one', 2, 'three' ############# sub sql_quote{ map{ /^(\d+|NULL)$/ ? $_ : "\'$_\'" } @_ } # Escape the list of parameters (all unsafe chars like ",' are escaped) # We make a copy of @_ since we might try to change the passed values, # producing an error when modification of a read-only value is attempted ############## sub sql_escape{ my @a = @_; map { s/([\'\\])/\\$1/g;$_} @a } -- wbr, Yury Yurevich icq://209846262 http://asko-zabota.ru --- ifmail v.2.15dev5.3 * Origin: ASKO-Zabota (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/910400605cdc.html, оценка из 5, голосов 10
|