Главная   Вход

JSON и безопасность браузеров

09 Янв 2009 admin | Отзывов: 2 | Рубрика JSON, Javascript

Перевод статьи с YUI Blog.

==

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

Веб-браузер представляет собой особую среду для приложений. Развитие модели безопасности браузера связано со множеством предсказуемых и весьма неприятных ошибок. Большинство дыр в безопасности браузеров было устранено, но в некоторых случаях использованные решения становятся причиной неудобств, а поиск путей обхода этих неудобств, в свою очередь, приводит к появлению новых ошибок.

Теги: , , ,

Вышел CakePHP 1.2 stable

27 Дек 2008 admin | 1 отзыв | Рубрика CakePHP

Все радуемся рождественскому (и новогоднему) подарку от разработчиков чудо-фреймворка.

Вышла бета jQuery 1.3

23 Дек 2008 admin | 1 отзыв | Рубрика Javascript, jQuery

Как сообщает Ajaxian, в новой версии есть довольно существенные изменения:

  • Интегрирован Sizzle
  • Убрана проверка версии браузера: например, вместо if ( jQuery.browser.msie && !jQuery.isXMLDoc(this) ) { будет if ( !jQuery.support.noCloneEvent && !jQuery.isXMLDoc(this) ) {
  • “Живое” делегирование событий: в том смысле, что если вы добавляете элементы, то на них также будут распространяться делегированные ранее события, если использовать конструкции такого рода: $(”#foo > div”).live(”click”, someFn);
    $(this).closest(”div”);: возвращает ближайшего предка для указанного селектора

Переписаны некоторые функции:

  • .offset() теперь работает намного быстрее.
  • .hide()/.show() стали быстре на 50% - 200%
  • .append/prepend/before/after - в 10-15 раз быстрее

Теги: , ,

Вышел CakePHP 1.2 RC4…

23 Дек 2008 admin | Отзывов: 3 | Рубрика CakePHP, Переводы

…О чем сообщает Nate Abele в статье на Bakery
Я сам еще новую версию не посмотрел, но вот что пишет cakebaker по поводу перехода с версии RC3:
При обновлении с RC3 до RC4 особых проблем не было. Помимо замены папки “cake” также пришлось заменить “app/webroot/css.php”, так как этот файл изменился по сравнению с RC3.

В ядре кейка также произошли определенные изменения, которые могут (в редких случаях) стать причиной проблем:

  • Метод ClassRegistry::_duplicate() теперь приватный (т.е. стал ClassRegistry::__duplicate())
  • То же самое с Router::matchRoute() (стал Router::__matchRoute())
  • параметр XmlNode::toArray() (в cake/libs/xml.php) изменился с “$object = null” на “$camelize = true”

Теги: , ,

Добавление записей в WordPress при помощи PHP

19 Дек 2008 admin | Ваш отзыв | Рубрика PHP, wordpress

Для одного блога нужно было сделать вставку особым образом сформированных постов php-скриптом. Весьма кстати здесь оказывается то, что WordPress написан с умом, и напрямую в базу данных для решения этой задачи лезть не надо. А все, что нужно, это:

// подключить файл, "загружающий" WordPress
include($pathToWordpress.'/'.'wp-blog-header.php');
// указать параметры
// статус поста - "опубликован"
$post_array = array('post_status' => 'publish',
// автор - админ (пользователь с id = 1)
                    'post_author' => 1,
// заголовок поста
                    'post_title' => $my_title,
// текст поста
                    'post_content' => $text,
// название поста
                    'post_name' => $pub_title,
// теги
                    'tags_input' => 'тег1, тег2, тег3',
// категории
                    'post_category' => array(3, 4)
);
// добавление записи в блог
wp_insert_post($post_array);

Теги: ,

Домашняя страница Вашего сайта на CakePHP

15 Дек 2008 admin | 1 отзыв | Рубрика CakePHP, Переводы

Феликс (debuggable.com) написал короткий, но интересный пост о том, как можно создать динамическую домашнюю страницу для сайта на CakePHP.

Понятно, что для статических страниц сгодится стандартная функциональность PagesController, но если нужна динамика, то можно сделать так:

class PagesController extends AppController {
    public function view() {
        // Your normal pages
    }

    public function homepage() {
        $posts = ClassRegistry::init('Post')->find('all');
        $this->set(compact('posts'));
    }
}


[Да, давно пора отказаться от дедовских методов типа requestAction :)]

Интеграция PHPList и CakePHP для e-mail рассылок

13 Дек 2008 admin | Ваш отзыв | Рубрика CakePHP, Статьи

Представим себе следующую ситуацию. После регистрации на сайте у пользователя есть возможность в настройках профиля поставить галочку “Хочу получать по e-mail новости проекта”, а у владельца сайта должна быть возможность эти новости всем подписавшимся пользователям рассылать при их появлении.

В CakePHP есть EmailComponent для отправки сообщений электронной почты, но, к сожалению, для рассылки этот компонент не подойдет. Если в базе будет много пользователей, то отправка им сообщений в цикле скорее всего приведет к таймауту скрипта.

Чтобы не писать свое решение с очередями сообщений, обходом тайм-лимита и всем прочим, решил посмотреть, что есть уже готового.

Теги: , , ,

CakePHP: переключение языка приложения при помощи URL (i18n & l10n)

11 Дек 2008 admin | Ваш отзыв | Рубрика CakePHP, PHP, Переводы

Оригинал

==

Данная статья не описывает основы интернационализации и локализации в cakePHP - для ознакомления с ними лучше заглянуть в мануал.

Сначала опишем требования, чтобы лучше понимать, зачем и почему что и как сделано в данной статье:

  1. Приложение должно поддерживать два языка или более (в нашем случае - английский и русский)
  2. Язык по умолчанию - английский
  3. Переключение языка производится с помощью параметра в URL
  4. Формат URL должен быть таким: example.com/eng/controller/action
  5. Выбранный язык должен сохраняться в сессии и куках

Теги: , , ,

Создание zip-архивов в PHP без ZipArchive

09 Дек 2008 admin | 1 отзыв | Рубрика PHP

Недавно для одного сайта нужно было сделать возможность скачивания нескольких файлов в виде  zip-архива.  Сайт - на хостинге, где нет возможности подключить/использовать ZipArchive. Есть поддержка zlib, но gz-архивы в Windows без дополнительных средств не открываются, а надо.

Вспомнил, что phpMyAdmin (который на хостинге установлен) умеет экспортировать данные в архивах различных форматов, в том числе и zip. При этом ZipArchive не используется. В PMA используется расположенный в папке /libraries/ файл zip.lib.php, в котором описан класс zipfile. У класса есть два метода: addFile() добавляет файл в архив, file() возвращает содержимое архива. Для работы класса нужна поддержка zlib, так как используется функция gzcompress().

Теги: , ,

Крайне маловероятно, но…

06 Дек 2008 admin | Ваш отзыв | Рубрика CakePHP, Баги

…Если у вас в приложении есть база данных, а в ней таблица с названием вида “названиебазы_list”, то при генерации кеша схем (describe-ы, которые видно в логе в режиме отладки) кеш для данной таблицы будет заменен кешем, содержащим описание структуры базы данных. Это связано с тем, что в кеше с ключом cake_model_ИсточникДанных_Базаданных_list кейк хранит именно структуру БД. Я с этим столкнулся в процессе интеграции PHPList и CakePHP (возможно, об этом будет статья позже): по умолчанию для рассылок была создана база phplist, содержащая таблицу phplist_list.

Теги: ,