|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Serge Chervjakov 2:5020/400 17 Aug 2004 19:55:17 To : Alexey Gradovtsev Subject : Динамическое построение таблиц -------------------------------------------------------------------------------- Tue Aug 17 2004 19:20, Alexey Gradovtsev wrote to Melekhov Alexandre A.: AG> use CGI; AG> $query = new CGI; AG> my @turned_on; AG> if ($query->param()) AG> @turned_on = $query->param('columns'); Ага - точно-точно - не охота было смотреть, как там что б с одного имени чекбокса, несколько значений вываливалось:). Только нафигаже ж turned_on объявлять вне if'а, если используется он таки только в нем?:) $dbh->> selectall_arrayref('SELECT' . join (',', @turned_on) . 'FROM table') Большая засада, что может прийти то поле, которого в базе нету. Hада проверять на это дело. Обязательно нада. Хуже того - это потенциально опасно, не проверять, что в @turned_on все значения в списке не содержат метасимволов типа '. Вернее даже, что там нету части запроса просто... Я не уверен (особо взломом не занимался еще:) ), но возможно что если в конце обычного запроса, посланного в selectall_arrayref поставить ;, а потом написать еще запрос (но уже не Select скажем), то второй запрос не выполнится.. Hе знаю - такого не пробовал, но по крайней мере если такое чисто в mysql писать, то выполнится. И в таком случае, любой получит полный доступ к этой базе данных (что угодно - update,select,delete - все что позволено системой делать этому скрипту). Hу это мелочи конечно, если скрипт пишется "для себя" и ссылка на него и его упоминания нигде публиковаться не будут. --- ifmail v.2.15dev5.3 * Origin: FidoNet Online - http://www.fido-online.com (2:5020/400) Вернуться к списку тем, сортированных по:
Архивное /ru.cgi.perl/16679ea9ee9c4.html, оценка из 5, голосов 10
|