>> Вон с дырой в плагине к wordpress, я так и не понял, зачем было ждать от плагина, чтобы тот
>> проверял привилегии, почему нельзя было сделать это в update_options?
> потому что, внезапно, нет ничего необычайного в плагине, который управляет привиллегиями. И что? Сделай либо API в ядре CMS для установки объекта управляющего привилегиями, либо устанавливай такие плагины посредством наложения патчей на ядро CMS. Неудобно, но в том-то и фишка, что неудобно, нам нужно чтобы каждый идиот не лез своими кривыми ручонками в самые критичные куски кода.
> больше прокладок богу прокладок.
Я люблю принципиальных людей. Они так забавно продавливают свои принципы наперекор любому здравому смыслу, что невольно начинаешь гадать о том, какими интересными лабиринтами движется их процесс мышления.
> А для писания на php, как встарь, достаточно знания sql, а не
> еще стапиццот прокладок (впрочем, новые-модные фреймворки это успешно нивелируют).
> А если
> вы не умеете в работу с untrusted input и делаете какие-то
> предположения о том, что он может содержать - то вам никакие
> прокладки не помогут вообще - все равно вас поимеют.
С untrusted input (как впрочем и со всем остальным) проблема решается очень просто: пишется отдельный код, который из untrusted input'а, делает trusted. Мы в этот код засовываем данные полученные от пользователя, а на выходе мы получаем либо дулю с маслом (панику, Err(InvalidData), вылет исключения, или даже NULL -- не важно), либо структуру с trusted данными. Такая замечательная прослойка позволит отлаживать код разбора данных один раз, покрыть его тестами, прогнать его через две недели фаззинга на шестнадцати ядрах, и потом, какой бы дурак не пользовался нашим API для работы с untrusted данными, он просто не сможет перепутать endiannes, записать в поле size значение полученное от пользователя, не проверив его валидность, и вообще ничего особо плохого он сделать не сможет. Потому что о его возможных ошибках мы подумали заранее.
Надо только не забыть порезать клиентскому коду все простые пути получения исходных untrusted данных, и вынудить его пользоваться нашим API.
ps. Честно говоря, глядя на твои понты здесь, я думал о тебе лучше. Думал, что понты наверное не на пустом месте, и пох наверное что-то понимает в программировании. Но, судя по этим возражениям, это абсолютно пустые понты.