Опубликована третья глава книги "php|architect's Guide to PHP Security" - "SQL Injection (http://dev.mysql.com/tech-resources/articles/guide-to-php-se...)" (pdf), в которой рассматривается техника подстановки SQL кода злоумышленником и средства PHP для борьбы с данным видом атак.Также, вышла серия статей про кэширование отдаваемого контента и результатов SQL запросов в PHP скриптах:
- "Caching Result Sets in PHP: Cost-efficient PHP acceleration (http://www.devshed.com/c/a/PHP/Caching-Result-Sets-in-PHP-Co.../)";
- "Caching Result Sets in PHP: The Barebones of a Caching Class (http://www.devshed.com/c/a/PHP/Caching-Result-Sets-in-PHP-Th.../)";- "Caching Result Sets in PHP: A Content-Change Triggered Caching System (http://www.devshed.com/c/a/PHP/Caching-Result-Sets-in-PHP-A-.../)"
URL: http://dev.mysql.com/tech-resources/articles/guide-to-php-se...
Новость: http://www.opennet.me/opennews/art.shtml?num=6269
Мда, сначала написали тулзу через попу, придумав кучу дырок. Потом пишут книжки, как в попу чопик вставить, чтобы кто-то другой не вставил что похуже... Идиотизм. Эх...
SQL injection - уязвимость которая появляется в коде из-за неправильного подхода к реализации, и пхп не имеет к ней отношения. Не программист, и может скажу не то, но если в приложении на java подставить данные из POST или GET прямо в запрос, и код будет уязвим - неужели это проблема джавы, а не человека который написал код.Все равно что ругать С, за то что при неправильной работе с переменными и памятью может возникнуть buffer owerflow.
Проблема не в пхп, а в тех кто пишет подобный код.
В PHP отсуствует поддержка такой полезности, как "placeholders". Например
на Perl код выглядит примерно так:$q = new CGI;
$dbh->do("INSERT INTO mytable (key,val) VALUES (?,?)", undef, $q->param('key', $q->param('val'))
or die $dbh->errstr;После Perl очень тяжело "переучиваться" на особенности работы с СУБД в PHP :-(
есть в pdo, mysqli, oci, pear::db, adodb
да запретить просто SQL Injection и никаких проблем
> да запретить просто SQL Injection и никаких проблем
На законодательном уровне :)
Да просто криво пишут люди , вот и всё , ведь можно же все "входные" данные проверять а не тузлы всякие писать , или статьи...блин
> Да просто криво пишут люди , вот и всё , ведь можно же все "входные" данные проверять а не тузлы всякие писать , или статьи...блинСтатьи писать как раз таки нужно. В надежде на то, что хотя бы кто то из программеров их будет читать.
Очень много сайтов в Росси пишутся программистами, прочитвашими пару книжек про PHP в которых ничего не сказано про безопасность. И пишут насквозь дырявый код, до тех пор пока их сайт кто нибуть не задефейсит. А потом очень злятся на коварных хакеров, которые творят такие "чудеса".
В ВУЗах про безопасность тоже рассказывают всякую туфту не уделяя должное внимание таким распространенным ошибкам как переполнение буфера в Си или SQL-инъекции в веб-приложениях.
Веб-программисты удиляющие безопасности должное внимание встречаются очень редко. И это отчасти закономерно - заказчика прежде всего волнует функциональность сайта. А даже если кого то и волнует безопасность (а такие заказчики почти не встречаются), то легко можно навешать лапшу, поскольку проверить чужой код на наличие/отсутствие уязвимостецй не будучи экспертом в этой области нельзя.
>В ВУЗах про безопасность тоже рассказывают всякую туфту не уделяя должное внимание
>таким распространенным ошибкам как переполнение буфера в Си или SQL-инъекции в
>веб-приложениях.
В ВУЗах (по крайней мере в моем) вообще внимания не уделяют таким вещам. Там люди пишут в курсовиках, что для защиты сервера нужно сторожа нанимать и за это ставят "отлично". А если начинаешь рассказывать про такие вещи - получаешь "низачот" с мотивировкой, что это частности. Потом такие студенты идут работать и пишут соответствующий кривой код. Их никто не научил грамотно писать программы.
Так что статьи такого плана весьма и весьма полезны.
в америке скоро выйдет закон против SQL Injections.
>В PHP отсуствует поддержка такой полезности, как "placeholders".
В adodb есть.
И кто им пользуется? Ну и ещё он тормозной(тут недавно ссылка на сравнение проскакивала)