войти зарегистрироваться

PHPГотовим ActiveRecord из PDO. Часть 0

Доброго времени суток, хабровчане. Многие из вас, кто так или иначе соприкасался с веб-разработкой, знают о таком удобном способе обращения к БД как ActiveRecord, чуть меньше человек согласиться, что это действительно очень удобно, примерно столько же понимает, что это далеко не всегда лучшее решение для проекта из соображений производительности. И это действительно так, но можно много чего придумать для избавления от этих проблем: кеширование всего и вся, различные архитектурные ухищрения и т.д.

Именно различными улучшениями AR мы и займемся на протяжении всего цикла этих статей :)

Информационная безопасностьЗащита от ботов, основанная на различии в работе с большими числами в JavaScript и PHP из песочницы

Недавно мне пришлось разбираться с защитой от ботов, используемой на нескольких довольно популярных ресурсах.
На первый взгляд защита показалась обычной установкой куки через javascript, справиться с которой — дело 15-ти минут. В самом деле, после небольшого исследования стало понятно где что делается и какие параметры куда передаются, остается только переписать небольшую функцию с javascript на php и дело в шляпе.
Но все оказалось не так просто. И хотя в итоге защита была сломана, на это потребовалось далеко не 15 минут, и сам принцип защиты оказался для меня новым и довольно интересным.

Итак, обо всем по порядку.

Блог компании WizartechZFConf 2012 пройдет весной в Москве — открыта предварительная регистрация

Главное новшество этого года — место проведения. В этом году конференция пройдет в Москве, а не в Санкт-Петербурге, как это было ранее.

Уже сейчас доступна предварительная регистрация. Финальная регистрация, как обычно, будет открыта после формирования итогового списка докладов. Участники, прошедшие предварительную регистрацию, получат приоритетные уведомления об этом.

Свое участие в качестве спикеров уже подтвердили ряд специалистов. Также ведутся переговоры с иностранными докладчиками, в том числе с Zend Framework Core Team.

Если вам есть что рассказать сообществу, напишите нам через специальную форму о предлагаемом докладе. Для иногородних докладчиков обсуждаются условия по компенсации расходов на поездку.

Каскадные Таблицы Стилейrgba.php: изящный и миниатюрный «костыль» обеспечивает обратную совместимость с браузерами, не понимающими полупрозрачные цвета rgba(…)

Обеспéчение обратной совместимости rgba(…) ещё никогда не было таким простым, как copy+paste:

background: url('/rgba.php/rgba(255, 255, 255, 0.3)');
background:                rgba(255, 255, 255, 0.3);

Код rgba.php на языке PHP, которым достигается этот восхитительно простой трюк, лежит на GitHub под лицензией MIT. Занимает всего-навсего 2658 байтов.

Автор — Lea Verou. Хвала ей!

DIY или Сделай СамУмный дом с web-интерфейсом на perlxstut

В какой-то момент стало очень лениво отрывать свою пятую точку, чтобы перед сном выключить свет в комнате. И решил это дело автоматизировать. В итоге был изобретён свой велосипед для удалённого управления силовой нагрузкой – программно-аппаратный комплекс, обладающий следующими особенностями:

PHPПочему стоит пользоваться PDO для работы с базой данных


Перевод статьи Why you Should be using PHP’s PDO for Database Access.

Множество PHP-разработчиков привыкли использовать для работы с базами данных расширения mysql и mysqli. Но с версии 5.1 в PHP существует более удобный способ — PHP Data Objects. Этот класс, сокращенно именуемый PDO, предоставляет методы для работы с объектами и prepared statements, которые заметно повысят вашу продуктивность!

Введение в PDO


«PDO – PHP Data Objects – это прослойка, которая предлагает универсальный способ работы с несколькими базами данных.»

Заботу об особенностях синтаксиса различных СУБД она оставляет разработчику, но делает процесс переключения между платформами гораздо менее болезненным. Нередко для этого требуется лишь изменить строку подключения к базе данных.

Эта статья написана для людей, которые пользуются mysql и mysqli, чтобы помочь им в переходе на более мощный и гибкий PDO.

PHPПишем обработчик ошибок для phpredis из песочницы

Началось все с того, что у нас в компании решили сделать прокси/балансировщик нагрузки который бы, в зависимости от ключа, отправлял запрос на тот или иной инстанс Redis'а. Так как идеально сразу ничего не работает, то написанный на php проект, работающий с редисом(с помощью phpredis) через этот самый балансировщик, с завидной регулярности вылетал с критическими ошибками. Увы прокси не всегда правильно собирал сложные ответы сервера…
Работа с Redis'ом в коде через каждых 10 строк, и оборачивать каждый вызов в try, catch не было ни малейшего желания, но и с постоянными вылетами дебажить было сильно не удобно. Тут мне и пришла в голову идея подменить объект Redis'a своим, изнутри которого я бы уже вызывал все методы настоящего объекта…

Информационная безопасностьВыполнение кода в PHP 5.3.9

Одним из новшеств релиза PHP 5.3.9 стало введение нового параметра конфигурации max_input_vars, который устанавливает максимальное возможное количество входящих параметров в запросе. Новая директива является мерой против атак Hash Collision DoS, которые могут привести к отказу в обслуживании при отправке большого количества входящих параметров. Однако в коде, отвечающим за ограничение количества параметров в запросе, была допущена ошибка, которая приводит к удаленному выполнению кода. Уязвимость была обнаружена специалистом в области информационной безопасности Стефаном Эссером, известным за публикацию ряда серьезных уязвимостей в PHP, а также за разработку джейлбрейка для Apple iOS.

Уязвимость возникает в случае, когда количество входящих параметров превышает значение max_input_vars (по умолчанию 1000).

PHPДеобфускация PHP кода из песочницы

Деобфускация PHP
Так уж случилось, что на днях мне попался один нужный PHP скрипт, но обфусцированный.
По какой-то причине он никак не работал. Я пишу на PHP достаточно давно, и мне очень нравится отлавливать нестандартные ситуации в скриптах, особенно когда при выполнении в логах нет ошибок, а скрипт просто не выполняет своих предназначенных обязанностей, руки так и чесались расшифровать. Последней каплей стало то, что автора этого скрипта не было в сети, чтобы помочь решить мою проблему. Скрипт кстати куплен моим товарищем, собственно он и попросил помочь.

Цель данной статьи, показать принцип дешифровки, зашифрованных скриптов, чтобы например расшифровать залитый злоумышленником вирус на PHP.

PHPНа основе каких возможностей PHP и каким способом вы разрабатываете приложения?

Проголосовало 906 человек. Воздержалось 456 человек.