10 комментариев

Разработка (Developer) — приложение для разработчиков приложений: http://www.webasyst.com/ru/apps/developer/

Приложение является хорошим помощником при разработке приложений на основе фреймворка Вебасист: предоставляет «песочницу» для выполнения произвольного PHP/Smarty-кода в окружении фреймворка, включает в себя документацию по основным CSS-классам для построения интерфейса приложения и список всех доступных иконок .icon16 и .icon10.

В связи с тем, что приложение позволяет выполнить произвольный PHP-код, а значит получить доступ к любым данным фреймворка, его нельзя установить через «Инсталлер». Установить можно только вручную, скачав архив с сайта фреймворка и скопировав файлы приложения в папку wa-apps/ установки Вебасиста. Приложение «Разработчик» — для установки и использования на локальном компьютере или сервере, на котором ведется разработка. Оно не предназначено для работы на хостинге и в рабочей установке с реальными данными!

В будущем в приложение будут добавлены еще несколько полезных инструментов: для быстрого создания «приложений-пустышек» под новые проекты, просмотра полной документации по фреймворку с возможностью поиска, инструмент для работы с базой данных. Будем признательны разработчикам за ваши комментарии и пожелания по дальнейшему улучшению приложения.

Идея и реализация приложения: Леонид Вакуленко

11 комментариев

Пара советов по обеспечению безопасности вашей установки Вебасиста.

1. Изменение адреса бекенда (по умолчанию /webasyst/).
Делается это очень просто: в файле wa-config/config.php добавлением строки:

'backend_url' => 'admin',
// тогда бекенд будет открываться по адресу /admin/

'admin' можно заменить на что угодно.

Можно даже сделать URL входа в бекенд динамическим. Например, так:

'backend_url' => 'admin'.date('d'),

date('d') возвращает число месяца, например, 8 июня эта функция вернёт 08. Таким орбазом адрес бекенда будет /admin08/

2. Изменение функции генерации хеша паролей пользователей.
Фреймворк не хранит пароли пользователей в открытом виде. Хранится только хеш. Для совместимости с другими системами и прежними версиями скриптов WebAsyst по умолчанию в качестве функции хеша используется md5($password).

На современных GPU можно достаточно быстро перебирать пароли md5, а это значит, что если у вас каким-то образом будут украдены хеши паролей пользователей, то многие хеши могут быть расшифрованы (http://habrahabr.ru/post/145454/).

Начиная с версии фреймворка 1.0.8 появилась возможность задать свою функцию хеша от пароля. Для этого нужно в файле wa-config/SystemConfig.class.php в конце добавить объявление функции wa_password_hash().

Например, так:

function wa_password_hash($password)
{
    return md5(sha1("S!aL:T1%(#".$password)."_s+A=lT,2?*");
}

Строки S!aL:T1% и _s+A=lT,2?* принято называть «солью». При редактировании функции задайте ваши собственные значения этим строкам. Добавление «соли» делает хеши более устойчивыми к расшифровке (брутфорсу).

ВАЖНО: После смены функции хеша вам нужно будет установить новые пароли для пользователей: каждому пользователю бекенда нужно будет пройти стандартную процедуру восстановлением пароля («забыли пароль?»). Так что лучше всего обновленную функцию задавать тогда, когда в вашей системе еще мало пользователей. Рекомендуется сохранить код функции wa_password_hash() в надёжном месте на случай, если вы потеряете доступ к коду, и вам нужно будет перенести базу данных на другой сервер.

Есть пожелания или вопросы по улучшению безопасности? Пожалуйста, пишите комментарии.

2 комментария

Сегодня, 7 июня 2012, фреймворку Вебасист исполняется 1 год! Ровно год назад была представлена первая версия фреймворка и открыт сайт webasyst.com. В течение этого года мы реализовали почти все необходимые системные механизмы в ядре фреймворка, и сейчас готовим к выпуску несколько интересных приложений! В честь первого дня рождения представляем интересное нововведение — установку фреймворка одним кликом. Объясню, как это работает.

Как любой другой PHP-скрипт, фреймворк Вебасист устанавливается в несколько шагов: скачивание архива, загрузка на сервер по FTP, предоставление прав доступа к файлам, создание базы данных. Упростить процедуру установки скриптов может хостинг-провайдер, реализовав возможность экспресс-установки. Так многие хостинг-провайдеры позволяют пользователям устанавливать популярные скрипты одним кликом: WordPress, Joomla!, Drupal и другие.

Мы опубликовали документацию для хостинг-провайдеров, в которой описана реализация однокликовой установки фреймворка Webasyst: http://www.webasyst.com/ru/framework/docs/server/1-click-installation-implementation-guide/

Реализация несложная. В документации подробно описано, по какому адресу забирать дистрибутив, как сохранять данные для подключения к базе данных MySQL и т.д. Приведен готовый пример аддона для cPanel, позволяющий установить Вебасист одним кликом.

Приглашаем хостинг-провайдеров реализовать возможность установки Вебасиста и попасть в список рекомендованных хостингов для фреймворка! Вебасист уверенно набирает популярность! С появлением в ближайшем будущем новых приложений, в том числе нового Shop-Script, пользователей и разработчиков приложений на основе фреймворка будет каждый день все больше и больше. Всем им нужен надежный хостинг, и мы будем рады рекомендовать вас!

Сейчас в списке рекомендованных только один хостинг — предоставляемый нашей же компанией. На нем мы реализовали и протестировали процедуру однокликовой установки (работает!). Сделайте поддержку экспресс-установки на вашем хостинге, и мы добавим ваш хостинг в список рекомендованных. Ответим на любые ваши вопросы, окажем помощь в разработке: пишите нам по адресу framework-ru@webasyst.com

Опубликована документация по использованию капчи в приложениях на основе фреймворка Вебасист: http://www.webasyst.com/ru/framework/docs/dev/captcha/

17 комментариев

Еще пять полезных плагинов для приложения «Блог» доступны для установки через Инсталлер:

6 комментариев

На основе Вебасиста постепенно начинают появляться интересные проекты и сайты:

TaxiStory


http://www.taxistory.ru

Сайт о такси с каталогом таксопарков, отзывами и новостями мира такси
Разработчик: Bistrooo.ru

Актер Гэлакси


http://www.actorgalaxy.ru

Сайт жилого комплекса в Сочи
Разработчик: Bistrooo.ru

Stuart's Legal LLC


http://stuartslegal.com/ru

Сайт российской юридической компании
Разработчик: d2q.ru

Pocket Lists


http://www.pocketlistsapp.ru

http://www.pocketlistsapp.com
http://www.1312.ru
Приложение для организации дел для iPhone и iPod touch.
Все три сайта работают на базе одной установки Вебасиста и сделаны с помощью приложения «Сайт».
Разработчик: 1312

Пожалуйста, рассказывайте о ваших проектах, приложениях и сайтах на Вебасисте: пишите в комментариях, на форуме Вебасиста или по адресу framework-ru@webasyst.com. О наиболее интересных проектах, их внутреннем устройстве и разработчиках мы с удовольствием напишем отдельные посты в этом блоге. Ждем ваших сообщений.

11 комментариев

Представляем платформу для создания плагинов к приложениям! Основы платформы реализованы в ядре фреймворка. Плагины позволяют гибко расширять функционал приложений, не затрагивая исходный код и шаблоны приложения (приложения обновляются независимо от плагинов).

Опубликована документация о структуре плагинов и общих основах их работы: http://www.webasyst.com/ru/framework/docs/dev/plugins/

Плагины позволяют действительно гибко расширять функционал приложений. Предлагаем убедиться в этом на примере четырех плагинов для приложения «Блог», которые уже доступны для установки:

Плагины установливаются через «Инсталлер» одним кликом и мгновенно активируются. В будущем мы планируем продолжить выпускать плагины для «Блога». Например, плагин импорта записей из ЖЖ и Вордпресса, плагин экспорта записей в Фейсбук (предлагайте ваши идеи плагинов в комментариях!)

Разработчикам мы предлагаем попробовать самостоятельно написать плагин для приложения «Блог». Список событий, которые предоставляет «Блог» для интеграции, представлен здесь: http://www.webasyst.com/ru/apps/blog/developer-guide/
О наиболее интересных ваших плагинах мы с удовольствием расскажем всем пользователям приложения «Блог».

Большинство приложений, над которыми мы сейчас работаем — «Фото», «Рассылки», «Поддержка» и, конечно, новый Shop-Script — будут позволять расширять свой функционал с помощью плагинов аналогично тому, как это уже работает в «Блоге».

12 комментариев

В версии фреймворка 1.0.7 (уже доступна для загрузки) изменился инструментарий отправки почты. Теперь в состав ядра фреймворка входит библиотека Swift Mailer, и вся работа с почтой осуществляется на ее основе. В wa-system созданы классы-обертки, унаследованные от Swift. Обновленная статья документации по работе с почтой: http://www.webasyst.com/ru/framework/docs/dev/mail/

Вниманию разработчиков: Старые методы отправки почты более не работают.
Необходимо обновить методы и параметры, которые вы используете для отправки почты в ваших приложениях.

Подробности под катом →

4 комментария

Опубликована документация по интеграции с приложением «Контакты»: http://www.webasyst.com/ru/framework/docs/dev/contacts-app-integration/

Интеграция позволяет любому приложению получить доступ к базе данных контактов и пользователей Вебасиста и, фактически, использовать всю инфраструктуру приложения «Контакты» вместо реализации собственной. Многие будущие приложения (в том числе приложение «Рассылки», которое сейчас находится в разработке, и новый Shop-Script) будут полностью интегрированы с «Контактами» согласно этой документации.

4 комментария

CSRF (англ. Сross Site Request Forgery — «Подделка межсайтовых запросов», также известен как XSRF) — вид атак на посетителей веб-сайтов, суть которого заключается в выполнении действий от имени пользователя без его ведома. Когда пользователья заходит на сайт, созданный злоумышленником, то от его имени на другой сервер тайно отправляется запрос на выполнение некоторого действия (чаще всего это запросы на популярные ресурсы вроде почтовых служб и соцсетей, на которых пользователь с наибольшей вероятностью будет авторизован). Подробнее об CSRF читайте на Википедии.

Основной метод защиты от атак CSRF заключается в следующем:

  1. Все важные действия пользователя (изменение или удаление данных) должны быть реализованы с помощью отправки формы методом POST.
  2. При отправке данных нужно сгенерировать случайную строку (подпись), сохранить ее значение в куках (cookies) и добавлять во все формы с помощью скрытого инпута <input type="hidden" name="_csrf" value="СОХРАНЁННАЯ_СЛУЧАЙНАЯ_СТРОКА">
  3. При получении запросов POST проверять значение из $_COOKIE['_csrf'] и $_POST['_csrf'] и выполнять действие только в том случае, если значения совпадают. Если это не так, то скорее всего форма была отправлена с другого сайта.

Чтобы сделать приложения на основе фреймворка Вебасист более безопасными, мы реализовали защиту от атак CSRF на уровне ядра фреймворка. Применить защиту в вашем приложении следует следующим образом:

  • В конфигурационном файле вашего приложения wa-apps/[APP_ID]/lib/config/app.php необходимо указать 'csrf' => true
  • В шаблонах во все формы с method=POST добавить {$wa->csrf()}
    Эта конструкция автоматически заменится на скрытый input с нужным значением.
  • Дальнейшая проверка будет осуществлена фреймворком автоматически. Если подписи не будут совпадать, то фреймворк вернет ответ с ошибкой 403 Forbidden на этапе инициализации приложения (управление приложению передано не будет).

AJAX: Если вы подключаете в своём приложении скрипт wa-content/js/jquery-wa/wa.core.js, то параметр _csrf также автоматически будет добавляться во все AJAX-запросы, отправляемые методом POST. Если этот скрипт не подключается, то для защиты от CSRF (при включенном 'csrf' => true в конфиге) вам необходимо во все запросы добавлять переменную '_csrf' = get_cookie('_csrf').

Описанный механизм требует от пользователя включенных куки (cookies), и поэтому в данный момент реализован только для бекенда Вебасиста. Реализацию защиты в коде можно посмотреть на примере приложения «Блог».